【发布时间】:2015-09-25 17:57:29
【问题描述】:
我有一个函数可以返回表单中的每个文本输入是否都有值。
当我第一次制作这个函数时,它看起来像这样:
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 文本文件)我想要检查的每个输入的 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;
}
}
当我调用该函数时,它会返回此错误:
未捕获的类型错误:inputs[i].val 不是函数
我做错了什么?
【问题讨论】:
标签: javascript jquery arrays input