起初我这样做,但后来我意识到这不起作用,因为并非所有元素都可见。我并不是说隐藏,我的意思是它甚至不会出现在DOM中。对于6个具有6个不同名称的字段,这整个代码块(减去document.ready部分)已完成6次,因此当输入6个字段中的任何一个时,检查另外5个。
$(document).ready(function() {
$(document.body).on("input", "input[name='count1']", function() {
if ($(this).val() == '') {
//do nothing
} else {
var count1val = $("#count1").val();
var count2val = $("#count2").val();
var count3val = $("#count3").val();
var count4val = $("#count4").val();
var count5val = $("#count5").val();
var count6val = $("#count6").val();
if (count1val !== '' && count2val !== '' && count3val !== '' && count4val !== '' && count5val !== '' && count6val !== '') {
//do something
}
}
});
});
然后我需要查看具有某个类名的所有输入是否为空。需要使用类名,因为我需要以同样的方式处理多个集合,并且我不希望一个集合干扰其他集合。我尝试了以下但是没有用。
$(document).ready(function() {
$(document.body).on("input", "input[name='count1']", function() {
if ($(this).val() == '') {
//do nothing
} else {
if ($(".countmulti:visible").val() !== '') {
//do something
}
}
});
});
有什么更好的方法可以找出具有特定类名的所有可见字段是否为空。
更好地解释可见区域;有时它只会显示字段1,有时是字段1和2,有时是1,2和3,有时是1,2,3和4,有时是1,2,3,4和5,有时全部是6。
我在stackoverflow上用另一个Q& A解决了它。这是我用过的:
var inputsWithNoValue = $(".countmulti:visible").filter(function() {
return !this.value.length;
});
if (inputsWithNoValue.length) { // if there are inputs with no value
alert('something empty');
} else {
alert('nothing empty');
}
答案 0 :(得分:0)
你试过console.log($(".countmulti:visible"))
吗?它可能是一个数组。
它可能会返回许多元素,因此您必须使用每个来迭代数组。
答案是迭代它。 而不是:
if ($(".countmulti:visible").val() !== '') {
//do something
}
写
var res = $(".countmulti:visible");
$.each(res, function( index, value ) {
if ( res[index].val() !== '' ) //do something
});
问题是,给定的选择器返回许多对象而不是之前的对象。
答案 1 :(得分:0)
var inputsWithNoValue = $(".countmulti:visible").filter(function() {
return !this.value.length;
});
if (inputsWithNoValue.length) { // if there are inputs with no value
alert('something empty');
} else {
alert('nothing empty');
}