gpt4 book ai didi

javascript - 即使必填字段值不正确或验证失败,为什么仍会提交此表单?

转载 作者:行者123 更新时间:2023-12-03 03:48:21 25 4
gpt4 key购买 nike

我正在应用Javascript验证,当表单验证失败时为什么会这样

正在提交。在这里我使用以下代码。

var FormValidation = function () {
var isbnForm = function() {
// for more info visit the official plugin documentation:
// http://docs.jquery.com/Plugins/Validation


var form1 = $('#isbnForm');
var error1 = $('.alert-danger', form1);
var success1 = $('.alert-success', form1);

form1.validate({
errorElement: 'span', //default input error message container
errorClass: 'help-block help-block-error', // default input error message class
focusInvalid: false, // do not focus the last invalid input
ignore: "", // validate all fields including form hidden input
messages: {
select_multi: {
maxlength: jQuery.validator.format("Max {0} items allowed for selection"),
minlength: jQuery.validator.format("At least {0} items must be selected")
}
},
rules: {
isbn: {
required: function(){

var isbn = $("#isbn").val();
if(isbn){

var resultData10 = isValidIsbn10 (isbn);
if(resultData10 != 1){

$(".errorData").show();
$(".errorData").html("<p style='color:#A94442;'>ISBN number is not valid</p>");
return true;
}
else{
$(".errorData").hide();
return false;
}
}
else{
$(".errorData").hide();
return true;
}

function isValidIsbn10 (isbn) {

isbn = isbn.replace(/[^\dX]/gi, '');

if(isbn.length != 10){
return false;
}
var chars = isbn.split('');
if(chars[9].toUpperCase() == 'X'){
chars[9] = 10;
}
var sum = 0;
for (var i = 0; i < chars.length; i++) {

sum += ((10-i) * parseInt(chars[i]));
};
return (0 === (sum % 11)) ? 1 : false;
}
}

},
name: {

required: true
},


},

invalidHandler: function (event, validator) { //display error alert on form submit
success1.hide();
error1.show();
Metronic.scrollTo(error1, -200);
},

highlight: function (element) { // hightlight error inputs
$(element)
.closest('.form-group').addClass('has-error'); // set error class to the control group
},

unhighlight: function (element) { // revert the change done by hightlight
$(element)
.closest('.form-group').removeClass('has-error'); // set error class to the control group
},

success: function (label) {
label
.closest('.form-group').removeClass('has-error'); // set success class to the control group
},

submitHandler: function (event,form) {
success1.show();
error1.hide();
form.submit();
}
});


}

return {
//main function to initiate the module
init: function () {

isbnForm();

}

};

}();

当我在 ISBN 输入类型中输入错误的值时,将显示错误消息,但在提交表单之后。我希望如果值错误,则不应提交表单。

最佳答案

您的 isbn: required 规则仅确定 isbn 是否是必需的。如果您输入无效的 isbn,isValidIsbn10() 将返回 false,并且您的 required 规则将返回 false。所以这意味着不需要 isbn,仅此而已。这不会停止提交表单。

您想要的是一个仅验证 isbn 是否有效的规则。您需要一个 custom validation method来做到这一点。

关于javascript - 即使必填字段值不正确或验证失败,为什么仍会提交此表单?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45280411/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com