gpt4 book ai didi

javascript - jQuery 从 $ ("input") 数组中获取输入 val()

转载 作者:行者123 更新时间:2023-11-29 18:03:57 25 4
gpt4 key购买 nike

我有一个函数可以返回表单中输入的每个文本是否都有值。

当我第一次制作函数时,它看起来像这样:

function checkInput(inputId) {
check = 0; //should be 0 if all inputs are filled out
for (var i=0; i < arguments.length; i++) { // get all of the arguments (input ids) to check
var iVal = $("#"+arguments[i]).val();

if(iVal !== '' && iVal !== null) {
$("#"+arguments[i]).removeClass('input-error');
}
else {
$("#"+arguments[i]).addClass('input-error');
$("#"+arguments[i]).focus(function(){
$("input").removeClass('input-error');
$("#"+arguments[i]).off('focus');
});
check++;
}

}

if(check > 0) {
return false; // at least one input doesn't have a value
}
else {
return true; // all inputs have values
}

}

这工作正常,但是当我调用该函数时,我必须包括(作为一个 arstrong textgument)我想要检查的每个输入的 id:checkInput('input1','input2','input3 ')


现在,我试图让我的函数检查页面上的每个输入,而不必包含每个输入 ID。

这是我目前所拥有的:

function checkInput() {
var inputs = $("input");
check = 0;
for (var i=0; i < inputs.size(); i++) {
var iVal = inputs[i].val();

if(iVal !== '' && iVal !== null) {
inputs[i].removeClass('input-error');
}
else {
inputs[i].addClass('input-error');
inputs[i].focus(function(){
$("input").removeClass('input-error');
inputs[i].off('focus');
});
check++;
}

}

if(check > 0) {
return false;
}
else {
return true;
}

}

当我调用该函数时,它返回此错误:

Uncaught TypeError: inputs[i].val is not a function

我做错了什么?

最佳答案

当您执行 inputs[i] 时,这将返回一个 html 元素,因此它不再是一个 jquery 对象。这就是为什么它不再具有该功能的原因。

尝试用 $() 包装它,比如 $(inputs[i]) 来获取 jquery 对象,然后像这样调用 .val() :

 $(inputs[i]).val()

如果你打算在你的 for 循环中使用它,只需将它设置为一个变量:

var $my_input = $(inputs[i])

然后继续在循环中与其他方法一起使用它:

$my_input.val()
$my_input.addClass()

等..

关于javascript - jQuery 从 $ ("input") 数组中获取输入 val(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32788015/

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