【发布时间】:2016-04-04 00:12:09
【问题描述】:
我正在尝试使用以下脚本来检测我的表单中的任何字段是否已更改(编辑:检测我的表单字段的值是否已更改),如果是,则提醒用户。否则显示另一个js框。
但它没有检测到任何更改,并且从未显示确认框。我做错了什么?
$('#eventMedia').click(function() {
var form_changed = false;
$('#tribe-events > form').on('keyup change', 'input, select, textarea', function(){
form_changed = true;
});
if (form_changed == true) {
confirm('You have unsaved changes! Click Cancel to save your changes before continuing.');
} else {
$('#eventMediaBox').show();
$('#blackFade').show();
}
});
【问题讨论】:
-
“检测我的表单中是否有任何字段发生了变化”?....从什么到什么?
-
抱歉,请检测我的任何表单字段的值是否已更改。
-
那么什么是#eventMedia?是不是填完表格后点击的???如果是这种情况,在单击元素后如何检测先前所做的键控或更改。您需要将它们绑定在 click 方法之外。
-
单击#eventmedia 会在页面上显示一个允许用户上传图像的新元素。一旦他们保存了上传的图片,页面刷新并且表单中任何未保存的更改都会丢失,因此我想提前提醒用户。
-
那么您想要检测的更改是在单击按钮之前还是之后进行的?如果之前,我之前的评论是有效的。如果之后,则在未单击元素时检查您的 if 。您不会在上传之前调用它...
标签: javascript jquery forms conditional