我有以下脚本在IE 8中不起作用,它可以在其他浏览器中运行良好但在IE 8中...所有用户都获得,即使选中的复选框输入也是警报。任何想法将不胜感激。
$(function() {
$("form#insider-account").bind("keypress", function(e) {
if (e.keyCode == 13) return false;
});
var isChecked = false;
$("form#insider-account").change(function() {
if ($("input#insideraccount_verified").is(":checked")) {
isChecked = true;
} else {
isChecked = false;
}
});
$("form#insider-account").submit(function(e) {
if (!isChecked) {
e.preventDefault();
alert("You must agree that the information you provided is correct.");
}
else {
}
});
});
答案 0 :(得分:2)
不确定为什么在与submit-event不同的事件中设置isChecked。我认为你的问题是在IE8中,这个:
$("form#insider-account").change(...
更改表单内的控件时不会触发。为什么不将change事件附加到控件本身:
$("input#insideraccount_verified").change(...
或者,更好的是,只需检查提交事件中是否选中了复选框,而不是使用您在其他事件中设置的变量:
$("form#insider-account").submit(function (e) {
if (!$("input#insideraccount_verified").is(":checked")) {
e.preventDefault();
alert("You must agree that the information you provided is correct.");
}
else {
}
});
答案 1 :(得分:0)
在搜索谷歌搜索“表单更改即jquery”之后,听取表单内部元素的更改而不是表单iteself,有许多结果表明这是一个问题,包括jQuery .change() event not firing in IE
建议使用on事件,它将监听表单中输入元素的change事件,如下所示:
$("form#insider-account input").on('change', function() {
isChecked = $("input#insideraccount_verified").is(":checked");
});