gpt4 book ai didi

javascript - Jquery 在提交时验证多个输入

转载 作者:行者123 更新时间:2023-11-30 06:21:07 25 4
gpt4 key购买 nike

我正在尝试创建一个 jquery 函数来在提交表单之前验证用户输入,但它向我显示错误 TypeError: $ival.val(...) is null,我不能'看不出我做错了什么。我也不想使用 jQuery validate library,我想创建自己的简单验证。

验证

function checkValidate(input_el){
var status_check = true;
var $ival = $(input_el);
if(($(input_el).attr('type') == 'email' || $(input_el).attr('name') == 'email') && $ival.val().trim().match(/^([a-zA-Z0-9_\-\.]+)@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.)|(([a-zA-Z0-9\-]+\.)+))([a-zA-Z]{1,5}|[0-9]{1,3})(\]?)$/) == null) {
status_check = false;
} else {
var filter = /^((\+[1-9]{1,4}[ \-]*)|(\([0-9]{2,3}\)[ \-]*)|([0-9]{2,4})[ \-]*)*?[0-9]{3,4}?[ \-]*[0-9]{3,4}?$/;
if($(input_el).attr('type') == 'tel' && (!filter.test($ival.val().trim()) || $(input_el).val().trim() < 8)){
status_check = false;
} else {
if($ival.val().trim() < 1) {
status_check = false;
}
}
}
return status_check;
}

function setValidation(input) {
var thisAlert = $(input).parent();
$(input).addClass('inputHasError');
}

后置函数

function postBusinessSetup(self, check) {
if(check) {
console.log('YES');
} else {
console.log('NO');
}
}

提交代码

$(document).on('submit', '#ExampleForm', function(e) {
var inputs = $('.required-data', this);
var check = true;
var self = this;
for(var i=0; i<inputs.length; i++) {
if(checkValidate(inputs[i]) == false) {
setValidation(inputs[i]);
check = false;
}
}
postBusinessSetup(this, check);
e.preventDefault();
});

HTML

<form id="ExampleForm">
<input type="text" class="required-data"/>
<input type="email" class="required-data"/>
<input type="tel" class="required-data"/>
<input type="url" class="required-data"/>
<select class="required-data"><option value="hello">hello</option></select>
</form>

最佳答案

可能是输入为空时函数 trim 导致错误。

$ival.val().trim()

你可以将它存储在一个变量中,你真的还可以优化你的代码

var $val = $ival.val() ? $ival.val().trim() : ''

关于javascript - Jquery 在提交时验证多个输入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53021034/

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