【发布时间】:2020-04-28 17:34:04
【问题描述】:
我有一个表单我正在尝试使用 JQuery Validate 进行验证,它工作正常。当点击提交按钮时,submitHandler 应该 1. 禁用按钮(防止多次提交)和 2. 更改按钮文本。
按原样,代码用于验证,但不调用 submitHandler。
我在这里查看了许多线程,说按钮必须是 type="submit",在 <form> 标签内等,但无法弄清楚。该按钮仍然可以被多次点击。
有什么帮助吗?
<script type="text/javascript" src="https://ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.min.js"></script>
<script type="text/javascript" src="http://ajax.microsoft.com/ajax/jQuery.Validate/1.6/jQuery.Validate.min.js"></script>
<script type="text/javascript">
$(document).ready(function() {
$("#freebottleform").validate({
rules: {
address : {
required: true
},
city : {
required: true
},
state : {
required: true
},
zipcode : {
required: true
},
phoneNumber : {
required: true,
phoneUS: true
},
},
//Specify the validation error messages here
messages: {
email: {
required: "Please enter email address",
email: "Please enter a valid email address"
},
phoneNumber: {
required : "Please enter your mobile number",
digits: "Please enter digits only"
}
},
submitHandler: function (form) {
$("#finalSubmit").attr("disabled", true);
$("#finalSubmit").html("Submitting... please wait.");
form.submit();
}
});
});
</script>
<!DOCTYPE html>
<html lang="en">
<div class="freebottleform">
<form method="post" id="freebottleform" name="freebottleform" action="p6.php">
Please enter your shipping details.<br>
<br>
Address:<br>
<input type="text" name="address" class="required" placeholder="Please enter your address."/><br>
<input type="text" name="address2" placeholder="Suite/Apt/Etc."/><br>
<br>
City:<br>
<input type="text" name="city" class="required" placeholder="Please enter your city."/><br>
<br>
State:<br>
<input type="text" name="state" class="required" placeholder="Please enter your state."/><br>
<br>
Zip Code:<br>
<input type="text" name="zipcode" class="required" placeholder="Please enter your zipcode."/><br>
<br>
Phone Number:<br>
<input type="text" name="phoneNumber" class="required" placeholder="Please enter your phone number."/><br>
<br>
<label><input type="checkbox" name="subscribe" id="subscribe" value="true" checked/> Subscribe to our newsletter to get FREE weekly tips sent right to your inbox!</label><br>
<br>
<button id="finalSubmit" type="submit" name="submit" value="final" >CONTINUE</button>
</form>
</div>
</html>
【问题讨论】:
-
几个问题:您是否尝试过升级到较新版本的 JQuery,是否查看过控制台输出是否有异常?
-
有:
TypeError: $.validator.methods[method] is undefined,好像是phoneUS的规则造成的。 -
@msg 就是这样!我以前为电话号码设置了一个方法,但不小心把它留下了。似乎它正在捕获该错误然后忽略所有代码。非常感谢!
-
@Dragonsnap 很好,我不知道我正在运行一个非常旧版本的 JQuery 和验证插件。两者都更新了,但问题仍然存在。用另一个答案解决了它。还是谢谢你!
标签: javascript php html jquery