Javascript 如何在jQuery中返回空字段的名称值
我有一段代码验证html表单并突出显示带有红色边框的空字段 我想要的是能够返回空输入字段的名称值,以便输出它们Javascript 如何在jQuery中返回空字段的名称值,javascript,jquery,Javascript,Jquery,我有一段代码验证html表单并突出显示带有红色边框的空字段 我想要的是能够返回空输入字段的名称值,以便输出它们 var isValid = $('input, textarea').not('input:disabled').filter(function() { return !this.value; }).css('border-color', 'red').length == 0; if(isValid){ console.log('Ok'); }else if(!i
var isValid = $('input, textarea').not('input:disabled').filter(function() {
return !this.value;
}).css('border-color', 'red').length == 0;
if(isValid){
console.log('Ok');
}else if(!isValid){
console.log($(this).attr('name') + 'must not be empty');
}
当没有空字段时,第一部分工作正常,但当有空字段时,我希望在控制台中获得这些输入的名称值。但是我一直得到未定义的原因是
是有效的是布尔值(.length==0
)。您需要获得如下所示的过滤元素:
var isValidEl = $('input, textarea').not('input:disabled').filter(function() {
return this.value.length == 0;
}).css('border-color', 'red');
然后,将条件更改为:
if(!isValidEl.length){
console.log('Ok');
} else {
isValidEl.each(function() {
console.log($(this).attr('name') + ' must not be empty');
});
}
Exmaple:
var isValidEl=$('input,textarea')。不('input:disabled')。过滤器(函数(){
返回this.value.length==0;
}).css(“边框颜色”、“红色”);
如果(!isValidEl.length){
console.log('Ok');
}否则{
isValidEl.each(函数(){
console.log($(this.attr('name')+'不能为空);
});
}
你好
可以使用map()
我得到的是isValidEl。每个都不是一个函数。如果我可能会问,isValid是一个boolen,那么为什么要访问它的length属性?因为true和false总是有一个长度值,在最后两种情况下都是true。是的,我没有使用您的变量名,只是使用其中的逻辑。您认为返回吗!这就是价值代码>可以吗?不应该是返回!这个.value.length代码>@AlonEitan可以正常工作,因为空字符串是falsy@AlonEitan但这两种方法都会失败,并以空格作为值…最好是返回!this.value.trim()
是的,但是由于空格将通过所需的验证,因此我将把它留给OP来决定它应该是谁handled@charlietfl它起作用了!但我知道其中两个名字是空字符串。这意味着什么?
var isValid = $('input, textarea').not('input:disabled').filter(function() {
return !this.value;
}).css('border-color', 'red')
var names = isvalid.map(function(){
return this.name;
}).get()