2

我正在使用 jQuery mobile 制作 web 应用程序,但是在让插件一起工作时遇到了一些问题。我知道为什么会这样,但我无法解决它...

因此,在我的网络应用程序中,我选择了带有http://andymatthews.net自动完成插件的项目。选择项目后,我将一些数据放在 localStorage 中。项目名称,ID等...

然后在选择项目后我有一些不同的表单,我使用jQuery 表单插件提交。我使用 PHP 访问 Mysql 数据库,所以我通过 jQuery 表单插件从本地存储中发布表单信息和一些变量。(我用这个,因为我也通过一些表格上传图片..)

所以,问题是,jQuery 表单插件需要放在 $(document).ready(function(){}) 中,并且只有在页面加载后才会生成数据,但是每次我从自动完成中选择新项目时我都会更改 localStorage 数据场地。因此,每次从列表中选择另一个项目时,我都需要重新启动应用程序,以将带有表单字段变量的 localStorage 变量传递给 PHP。我试图将 jQuery 表单插件放置到 $("#page").live("pageshow", function(){}) 但是插件不起作用......

这是问题的示例:

顺便说一句,对不起我的语言,但无论如何,谢谢你的建议......

$(document).ready(function()  {
$('#innregulering_form').ajaxForm({
       beforeSubmit: function(){
                        $.mobile.loading('show')},
       data:         ({project_id: localStorage.project_id,
                     project_prefix : localStorage.project_prefix}),
       dataType:     'json',
       failure:      function(data) { 
                        show_message('#innregulering_header', 'Can not save!', 'red')},
       success:      function(data) {
                         load_innregulering(data.apartament_id);
                         $.mobile.loading('hide');
                         $('#pop_innregulering_file_place').html('<b>File plased at:</b>' + data.file_patch + '</br><b>File name is: </b>' + data.file_name + '</br><b>File size is: </b>' + data.file_size + ' KB');
                         $('#tmp_pdf_file').val(data.file_name);
                         $("#wiev_innregulering_pdf_popup").popup( "open", {transition:  "pop"})}
 });

});

$("#select_project").live("pageshow", function(event, ui) {
if (localStorage.project_search){autocompleteData = JSON.parse(localStorage.project_search);} else {autocompleteData = '';}
$("#project_search").autocomplete({
    target:         $('#suggestions'),
    source:         autocompleteData,
    link:           '#project_home?',
    minLength:      1,
    matchFromStart: false,
    callback:       function(e) {
                         var $project = $(e.currentTarget); // access the selected item
                         var project_name = $project.data('autocomplete').label;
                         var project_prefix = $project.data('autocomplete').prefix;
                         var project_id = $project.data('autocomplete').project_id;
                         localStorage.setItem('project', project_name);
                         localStorage.setItem('project_prefix', project_prefix);
                         localStorage.setItem('project_id', project_id);}
});

});

4

0 回答 0