<script type="text/javascript">
var customDiv ="hello";
$(function () {
var $form = $("#authNotificationForm");
var startItems = $form.serializeArray();
startItems = convertSerializedArrayToHash(startItems);
$("#authNotificationSubmit").click(function (e) {
var currentItems = $form.serializeArray();
currentItems = convertSerializedArrayToHash(currentItems);
var itemsToSubmit = hashDiff(startItems, currentItems);
for (var item in itemsToSubmit) {
customDiv = "test";
}
});
$(".confirm").confirm({
text: "Are you sure you want update the following changes?" + customDiv,
confirm: function (button) {
// do something
},
cancel: function (button) {
// do something
},
confirmButton: "Yes I am",
cancelButton: "No",
post: true
});
</script>
我要做的就是在表单加载时获取表单的serializeArray。然后在提交单击后再次更改字段后,获取一个新的serializedArray表单比较2并获取更改的字段,然后在确认框中显示用户更改的字段。但是确认框显示的是hello而不是test。 我的假设是,确认框文本已经加载到文档就绪,并且永远不会更新,因此它始终具有在文档就绪时设置的全局变量值。 (我正确地获取更新的值,因此序列化和hashDiff函数很好,不是问题只是将此值传递给确认框。) 谢谢你的关注..
答案 0 :(得分:1)
您正在加载时设置text:
选项。稍后更改customDiv
不会影响它,因为先前已完成连接。
使用$.confirm
代替将确认对话框直接绑定到按钮,这样您就可以在通话时传递参数:
$(".confirm").click(function() {
$.confirm({
text: "Are you sure you want update the following changes?" + customDiv,
confirm: function (button) {
// do something
},
cancel: function (button) {
// do something
},
confirmButton: "Yes I am",
cancelButton: "No",
post: true
});
});