提交表单时检查Javascript变量
我有一个简单的HTML表单,它使用jQuery函数来验证表单 您会注意到,在jQuery代码中,我有一个名为提交表单时检查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
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');
}
});