jquery不刷新元素的值

jquery不刷新元素的值

问题描述:

我有一个应用程序,其中有两个按钮。每个将动态生成一个jQuery UI对话框jquery不刷新元素的值

$("<div class='dialog' style='font-size:12px' />").load(base_url + "/students/edit_profile/load_new_emp_form").dialog(options); 
} 

$("<div class='dialog' style='font-size:12px' />").load(base_url + "/students/edit_profile/load_new_edu_form").dialog(options); 
    } 

这两个对话框都有一个带有相同id #actBtn按钮的窗体。我有一个这个按钮的共同处理程序,因为两个对话都具有提交数据的相同操作。常见的处理函数是

$("#addBtn").live("click", function(){ 
    var pst = {}; 
    pst = $(this).parent().serializeArray(); 
    var clbk = $("#clbk").val();  
    var tbl = ""; 
    tbl = $("#tbl").val(); 
    $.post(base_url + "/general/insert_new_entity/" + tbl, pst, function(data){ 
     $("#" + clbk).click(); 
    }); 
}); 

正如你可以看到这只会序列化当前的形式是显示器和形式将有一个输入隐藏的元素与id作为TBL指定表名在这种形式的数据会去。

我的问题是在下次加载一个表单后,tbl名称保持不变,它不会使用当前表名更新。任何想法,为什么这是?

关于ID更新:

我知道的ID都应该是独一无二的,甚至在我的情况下,他们是唯一的。尽管两个表单都具有相同ID的元素,但它们不能同时存在于DOM中。它们是模态对话框,并且在任何时间点都只能打开一个对话框,因此DOM中只能存在一个具有相同ID的元素。

根据定义,ID's应该是唯一的。你有两个事实是第一个需要解决的问题。具有相同ID的多个元素会导致不可预知的行为。

+0

我知道身份证号码应该是唯一的,在我的情况下,在任何时间点,只能有一个具有相同身份证号的元素,因为每个身份证号码都是模式对话框,在另一个可以加载之前,前一个必须是卸载。因此,只能有一个具有相同ID的元素。 – swordfish

+0

我会怀疑jim对相同ID的说明可能是正确的。没有理由应该得到错误的价值。实际上只有两种可能性。 Tbl不是你认为的那样,或者jQuery不喜欢你在重新使用旧ID的新元素中加载。用另一个标识符抓住tbl,看看它是否适合你。 – mrtsherman