提交表单时检查Javascript变量

时间:2014-07-02 18:48:56

标签: javascript jquery forms

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

JsFiddle here:

你会注意到在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是否识别变量(它确实如此)。

如何检查标志== 0并调用Javascript警报说出"页面上的错误" ???

提前谢谢。

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

1 个答案:

答案 0 :(得分:0)

使用以下内容:

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 case。

编辑:要检查何时无效,您可以使用invalidHandler函数(这适用于jQuery Validation插件):

$( "#myform" ).validate({
  invalidHandler: function() {
    alert("There were errors on the page");
  }
});

请参阅:http://jqueryvalidation.org/Validator.numberOfInvalids/

编辑:jQuery Live Form验证的验证。

默认情况下,此验证是实时的,当您填写表单时,验证失败时将显示消息。您可以在表单提交中添加一个监听器,并检查验证错误类。

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

请参阅:http://www.geektantra.com/2009/09/jquery-live-form-validation/