Javascript 为什么当我填写最后一个输入时,即使所有其他输入都为空,我的表单也会进行验证?
我有一个联系方式,我正在验证。我知道您可以只使用默认的“required”属性,但是,我需要自定义验证错误消息。因此,我创建了这个JS类-当您初始化该类时,您会传入参数,例如,您要定位的表单、表单中的输入和提交按钮 以下是指向我的代码笔的链接: 我已尝试将if语句检查从'this'关键字更改为字段名称'.field.required'-当我这样做时,第一个输入将响应按钮,即使所有其他输入都为空Javascript 为什么当我填写最后一个输入时,即使所有其他输入都为空,我的表单也会进行验证?,javascript,forms,class,validation,oop,Javascript,Forms,Class,Validation,Oop,我有一个联系方式,我正在验证。我知道您可以只使用默认的“required”属性,但是,我需要自定义验证错误消息。因此,我创建了这个JS类-当您初始化该类时,您会传入参数,例如,您要定位的表单、表单中的输入和提交按钮 以下是指向我的代码笔的链接: 我已尝试将if语句检查从'this'关键字更改为字段名称'.field.required'-当我这样做时,第一个输入将响应按钮,即使所有其他输入都为空 this._input = this._form.querySelectorAll(props.inp
this._input = this._form.querySelectorAll(props.input);
this.checkFieldValue = function() {
jQuery(this._input).each(function() {
console.log(jQuery(this).val().length);
if(jQuery(this).val().length <= 0) {
$('.fake-click').show();
var submitHeight = jQuery(submitButton).innerHeight();
var submitWidth = jQuery(submitButton).innerWidth();
var submitInputTop = jQuery(submitButton).position().top;
var submitInputLeft = jQuery(submitButton).position().left;
$('.fake-click').css({
"background": "none",
"width": submitWidth + 5,
"height": submitHeight + 5,
"position": "absolute",
"top": submitInputTop,
"left": submitInputLeft,
"z-index": "1"
});
$(submitButton).css({
"opacity": .5
});
} else {
$('.fake-click').hide();
$(submitButton).css({
"opacity": 1
});
}
});
}
this.\u input=this.\u form.queryselectoral(props.input);
this.checkFieldValue=函数(){
jQuery(this.\u input).each(function(){
log(jQuery(this.val().length);
if(jQuery(this).val().length循环遍历所有输入,并在每次迭代后启用/禁用提交按钮。
只有最后一次迭代(最后一次输入)将确定submit按钮的状态
如果任何输入无效,您可以通过存储布尔值来解决此问题,并使用该值确定是否应启用“提交”按钮。如下所示:
this.checkFieldValue = function () {
let isValid = true;
jQuery(this._input).each(function () {
console.log(jQuery(this).val().length);
if (jQuery(this).val().length <= 0) {
isValid = false;
}
});
if (isValid === false) {
$('.fake-click').show();
var submitHeight = jQuery(submitButton).innerHeight();
var submitWidth = jQuery(submitButton).innerWidth();
var submitInputTop = jQuery(submitButton).position().top;
var submitInputLeft = jQuery(submitButton).position().left;
$('.fake-click').css({
"background": "none",
"width": submitWidth + 5,
"height": submitHeight + 5,
"position": "absolute",
"top": submitInputTop,
"left": submitInputLeft,
"z-index": "1"
});
$(submitButton).css({
"opacity": .5
});
} else {
$('.fake-click').hide();
$(submitButton).css({
"opacity": 1
});
}
}
this.checkFieldValue=函数(){
让isValid=true;
jQuery(this.\u输入).each(函数(){
log(jQuery(this.val().length);
if(jQuery(this).val().length