我有一个接受用户数字输入的表单。表单提交时,调用一个JS函数来检查表单状态(如果参数正常等)。它的动作之一是启动 AJAX 请求以接收两个值,具体取决于其参数(从表单中读取)。所以,我有一个名为 CheckForm() 的函数,它在表单提交时运行,在其中,我有一个启动 AJAX 请求的块:
var error = 0;
function CheckForm() { // run on form submit
var items = $('myitems');
if (items != undefined || items != null) {
items.each(function() {
if (!isNaN($(this).val())) { // check for number
$.get('myurl', {
// parameters
},
function(data) {
if (data != "0") {
if (condition) error = 1;
}
});
}
if (error == 1) return false;
}); // end each function
if (error == 1) {
alert("You have made an error.");
error = 0;
return false;
}
}
return true;
}
我还声明了一个全局变量(错误)来检查检查过程中是否发生了错误。myitems 是运行检查的 html 元素的集合。因此,此函数绑定到表单提交单击事件并在提交时运行。
问题:这不起作用。显示警报并立即刷新浏览器页面(提交表单),而无需用户先单击“确定”按钮。
还有其他方法可以实现吗?