我正在尝试创建一个程序,该程序需要至少一个(未知数量,取决于先前的条件)不同的表单输入来包含数据,以便用户能够提交表单。我已成功设法为只存在一个输入字段的情况创建代码,但我不知道如何处理多个输入。
所有表单输入共享相同的公共类rs2
,所以我的理论是希望我使用的jQuery代码(下面)能够定位该类的所有实例并验证是否在其中至少有一个不是空的,如果成功则返回true。但是,似乎只有jQuery代码检测到rs2
类的第一个实例,因为 - 即使所有其他输入都包含数据 - 只要第一个输入框不包含,就会发出false值任何数据。
$( "form" ).submit(function( event ) {
if( !$('.rs2').val() ) {
event.preventDefault();
}
});
如果rs2
不包含数据,代码会阻止表单提交 - 这就是我想要的。但是,我的目的是使它,只要至少有一个rs2
类包含数据,表单仍然会执行。我已经看过不同的方法了,但是目前我对这方面的一个很好的替代方案感到非常难过。
如果有人有任何想法,我们将不胜感激。
答案 0 :(得分:1)
您可以使用filter()
创建具有值的元素的集合,然后检查集合的长度作为条件
$( "form" ).submit(function( event ) {
var rs2HasVal = $('.rs2').filter(function(){
return this.value !== '';
}).length;
if( !rs2HasVal ){
event.preventDefault();
}
});
答案 1 :(得分:0)
创建了一个小提琴:http://jsfiddle.net/chzzcosy/4/
你必须按照自己的喜好来实现它,但这就是我要做的事情:
HTML
<input type='text' class='rs2' />
<input type='text' class='rs2' />
<button id="submit">Check</button>
的Javascript
$('#submit').click(function (event) {
var array = document.getElementsByClassName('rs2');
var count = [];
for (i = 0; i < array.length; i++) {
count += array[i].value;
}
if (count.length === 0) {
alert("prevented");
} else alert("not prevented");
});