我有以下HTML
<form onsubmit="call_it()" action="listing.php" method="get">
在被调用的函数中,alert('3')
未被调用。 jQuery each
函数工作正常,但不确定为什么之后没有执行任何操作。
function call_it() {
alert('2');
$('.form_field').each(function(i, obj) {
if (this.value == "") {
document.getElementById(this.id + '_blank').style.display = "block";
}
});
alert('3');
///other statements
}
答案 0 :(得分:1)
我在
上打电话给我<form onsubmit="call_it()" action="listing.php" method="get">
在这种情况下,问题是因为表单实际上正在提交。因此,在达到alert('3')
之前,页面被卸载,并且所有JS处理都被取消。
要解决此问题,请先删除过时的on*
事件处理程序,然后使用不显眼的JS附加事件处理程序,其次,如果验证失败,请停止提交表单。试试这个:
<form action="listing.php" method="get" id="theForm">
<!-- HTML inputs here... -->
</form>
$('#theForm').submit(function(e) {
alert('2');
$('.form_field').each(function(i, obj) {
if (!this.value) {
e.preventDefault();
$('#' + this.id + '_blank').show();
}
});
alert('3');
});