我有一个应用程序,其中有两个按钮。每个都将使用
动态生成一个jquery UI对话框$("<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的元素。
答案 0 :(得分:2)
ID应该是唯一的。你有两个这个事实是第一个需要解决的问题。拥有多个具有相同ID的元素会导致不可预测的行为。