提交表单时检查Javascript变量

提交表单时检查Javascript变量,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个简单的HTML表单,它使用jQuery函数来验证表单 您会注意到,在jQuery代码中,我有一个名为flag的变量,它被设置为0或1 jQuery(function () { jQuery("#ValidField").validate({ expression: "if (VAL){flag=1; return true; }else{flag=0; return false;}", message: "Please enter the Required field" }); jQu

我有一个简单的HTML表单,它使用jQuery函数来验证表单

您会注意到,在jQuery代码中,我有一个名为
flag
的变量,它被设置为0或1

jQuery(function () {
jQuery("#ValidField").validate({
expression: "if (VAL){flag=1; return true; }else{flag=0; return false;}",
message: "Please enter the Required field"
});
jQuery("#ValidNumber").validate({
expression: "if (!isNaN(VAL) && VAL){flag=1; return true; }else{flag=0; return false;}",
message: "Please enter a valid number"
});
jQuery("#ValidInteger").validate({
expression: "if (VAL.match(/^[0-9]*$/) && VAL){flag=1; return true; }else{flag=0; return false;}",
message: "Please enter a valid integer"
});

jQuery("#ValidSelection").validate({
expression: "if (VAL != '0'){flag=1; return true; }else{flag=0; return false;}",
message: "Please make a selection"
});

jQuery("#ValidRadio").validate({
expression: "if (isChecked(SelfID)){flag=1; return true; }else{flag=0; return false;}",
message: "Please select a radio button"
});
jQuery("#ValidCheckbox").validate({
expression: "if (isChecked(SelfID)){flag=1; return true; }else{flag=0; return false;}",
message: "Please check atleast one checkbox"
});

jQuery('.AdvancedForm').validated(function () {
if (flag == 1) alert("Use this call RIGHT HERE to make AJAX submissions.");
});
});
请注意,最后一条jQuery语句中的
if(flag==1)
不是必需的。我把它放在那里,看看JS是否能识别这个变量(确实如此)

如何检查flag==0并调用Javascript警报以显示“页面错误”?

先谢谢你


我更新了代码以修复(flag==1)语法。

使用以下命令:

if (flag) {
   alert("Use this call RIGHT HERE to make AJAX submissions.");
} else{
   alert("Flag was 0 or what error message you want to show");
}
如前所述,您需要使用
=
进行比较,而不是用于赋值的
=
。然而,由于flag是一个布尔值,并且将是1或0,所以您可以只使用if(flag)表示true,并使用else语句计算false大小写

编辑:要在无效时进行检查,可以使用invalidHandler函数(这适用于jQuery验证插件):

见:

编辑:jQuery实时表单验证的验证。

默认情况下,此验证为实时验证,当您填写表单时验证失败时,将显示消息。您可能会向表单submit添加一个侦听器,并检查验证错误类

jQuery('.AdvancedForm').submit(function(){
     if(jQuery('.AdvancedForm').find('.ValidationErrors').length){
        alert('There were errors on your form');
     }
});

请参阅:

FYI:当您说
if(flag=1)
时,您将值1赋给
flag
。你需要说
if(flag=1)
进行比较。此外,说
if(flag=1)
if(true)
相同。这是因为将一个分配给标志将由于分配的发生而始终返回true。这不是验证表单的好方法。用户可以轻松地通过此验证器并提交垃圾。您仍然可以使用它,但还必须验证来自服务器端的输入。我意识到您也需要在服务器端进行验证,但在PHP/MySQL端这是固定的。我在JavaScript方面遇到了问题。我认为OP的问题是在哪里进行这样的检查。它不能在jQuery('.AdvancedForm').validated(函数(){中,因为验证的函数将在验证表单时执行。如果表单被验证,标志将始终为1.yes。这不会回答OPs的问题,即:“如何检查flag=0并调用Javascript警报说‘页面错误’?”@Jonathan M您完全正确!!!此外,jQuery('.AdvancedForm')。已验证(函数()位于jQuery库中,我不想更改或添加jQuery代码{以防更新jQuery库}。
jQuery('.AdvancedForm').submit(function(){
     if(jQuery('.AdvancedForm').find('.ValidationErrors').length){
        alert('There were errors on your form');
     }
});