使用 jquery 验证时手机号码验证无法正常工作
Mobile number validation not working properly using jquery validation
我正在使用 jQuery 验证。我正在使用 minlength:8 和 maxlength:10 作为手机号码。
如果我添加 7 个数字,验证工作正常
注:我加了7个点号(.)表示8,接受了。
(如果我在末尾添加点 (.),我会收到错误消息)
注意:我加了9个号被接受了
有什么方法可以让用户输入8位数字或10位数字?
你能帮我解决这个问题吗?
$("#testForm").validate({
rules: {
mobileno: {
minlength: 8,
maxlength: 10,
number: true
}
},
submitHandler: function(form) {
$.ajax({
url: baseUrl + "/Test_control/submitForm",
type: "POST",
data: $('#testForm').serialize(),
success: function(data) {
window.location.href = baseUrl + "/all_thankyou";
},
}); // AJAX Get Jquery statment
}
});
<form name="form" id="testForm" action="#" method="post">
<input type="text" name="mobileno">
<input type="submit" name="send" value="Submit">
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/additional-methods.min.js"></script>
如果您想使用正则表达式,那么这里有一个用于匹配最少 8 个或最多 10 个数字的正则表达式代码:/(^[1-9]{8,10})/g
。在这里测试:https://regexr.com
使用addMethod
$(document).ready(function() {
$.validator.addMethod(
"mobileValidation",
function(value, element) {
return !/^\d{8}$|^\d{10}$/.test(value) ? false : true;
},
"Mobile number invalid"
);
$("#form").validate({
rules: {
mobile: {
required: true,
mobileValidation: $("#mobile").val(),
},
},
});
});
<script src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.0/dist/jquery.validate.min.js"></script>
<form id="form">
<input type="number" id="mobile" name="mobile" />
<input type="submit" name="submit" value="submit" />
</form>
我正在使用 jQuery 验证。我正在使用 minlength:8 和 maxlength:10 作为手机号码。
如果我添加 7 个数字,验证工作正常
注:我加了7个点号(.)表示8,接受了。
(如果我在末尾添加点 (.),我会收到错误消息)
注意:我加了9个号被接受了
有什么方法可以让用户输入8位数字或10位数字?
你能帮我解决这个问题吗?
$("#testForm").validate({
rules: {
mobileno: {
minlength: 8,
maxlength: 10,
number: true
}
},
submitHandler: function(form) {
$.ajax({
url: baseUrl + "/Test_control/submitForm",
type: "POST",
data: $('#testForm').serialize(),
success: function(data) {
window.location.href = baseUrl + "/all_thankyou";
},
}); // AJAX Get Jquery statment
}
});
<form name="form" id="testForm" action="#" method="post">
<input type="text" name="mobileno">
<input type="submit" name="send" value="Submit">
</form>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/jquery.validate.min.js"></script>
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-validate/1.19.0/additional-methods.min.js"></script>
如果您想使用正则表达式,那么这里有一个用于匹配最少 8 个或最多 10 个数字的正则表达式代码:/(^[1-9]{8,10})/g
。在这里测试:https://regexr.com
使用addMethod
$(document).ready(function() {
$.validator.addMethod(
"mobileValidation",
function(value, element) {
return !/^\d{8}$|^\d{10}$/.test(value) ? false : true;
},
"Mobile number invalid"
);
$("#form").validate({
rules: {
mobile: {
required: true,
mobileValidation: $("#mobile").val(),
},
},
});
});
<script src="https://code.jquery.com/jquery-3.4.0.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/jquery-validation@1.19.0/dist/jquery.validate.min.js"></script>
<form id="form">
<input type="number" id="mobile" name="mobile" />
<input type="submit" name="submit" value="submit" />
</form>