我有多个输入字段,它们具有相同的类名。我需要检查以确保其中至少有一个不是空的。所以我有,
$('form[name=expForm]').submit(function(){
var msg = "";
var found = false;
$('.date-mask').each(function(){
if($(this).val()){
found = true;
}
});
if (found != true) {
msg + =“请在提交前至少提供1个日期。\ n”; 返回false; } var calcFnd = false; $( '计算值')。每个(函数(){ 如果($(本).VAL()){ calcFnd = true; } });
if(calcFnd!= true){ msg + =“请在提交前提供至少1笔费用。\ n”; 返回false; }
if(msg!=“”){ 警报(MSG); 返回false; }
if($('.ttlR27').val()==""){
var net = $('.ttlR26').val();
$('.ttlR28').val(net);
}
return false;
});
<cfloop from="1" to="#ArrayLen(labels)#" index="r">
<tr>
<td class="labels <cfif labels[r] EQ "Day of Week:">row1</cfif>"><cfif ArrayIsDefined(labels,r) AND labels[r] NEQ "Open1"><cfif labels[r] EQ "Open"><input type="text" id="descript#r#" name="descript#r#" class="description descript#r#" value="Enter text here" style="width:auto;" /><cfelse>#labels[r]#</cfif></cfif></td>
<cfloop from="1" to="7" index="i">
<td id="Day#i#" class="row#r# col#i#">
<cfif r EQ 1>#Left(DayOfWeekAsString(i),3)#<cfelse><cfif r EQ 2>
<input type="text" class="date-mask" name="dates#i#" required="yes" message="Please provide at least 1 date before submitting.">
<cfelse>
<input type="text"
<cfif labels[r] EQ "Personal Car: Mileage ##"> id="gasamount#i#" <cfelseif labels[r] EQ "Personal Car: Mileage $">id="gasmoney#i#"</cfif><cfif labels[r] EQ "Open">id="open#r#"</cfif><cfif labels[r] EQ "Daily Totals">id="dailytotals#i#"</cfif> class="all <cfif labels[r] EQ "Personal Car: Mileage ##">gasamount <cfelse><cfif labels[r] NEQ "Daily Totals">C#i# </cfif></cfif><cfif labels[r] EQ "Personal Car: Mileage $">gasmoney<cfelse>calc R#r#<cfif labels[r] EQ "Daily Totals"> </cfif></cfif><cfif labels[r] EQ "Daily Totals">ttlC#i#</cfif><cfif labels[r] EQ "Less Advance(if applicable)"> less</cfif><cfif labels[r] EQ "Net Due Employee"> net</cfif><cfif labels[r] EQ "Open"> open</cfif>"
<cfif labels[r] EQ "Daily Totals" OR labels[r] EQ "Personal Car: Mileage $" OR labels[r] EQ "Open1">readonly="readonly"</cfif>
name="<cfif labels[r] NEQ "Personal Car: Mileage ##" AND labels[r] NEQ "Personal Car: Mileage $" AND labels[r] NEQ "Dates:" AND labels[r] NEQ "Open1" AND labels[r] NEQ "Daily Totals">R#r#.C#i#</cfif><cfif labels[r] EQ "Personal Car: Mileage ##">gasamt#i#</cfif><cfif labels[r] EQ "Daily Totals">celltotals#i#</cfif><cfif labels[r] EQ "Personal Car: Mileage $">gastot#i#</cfif>" /></cfif>
</cfif>
</td>
</cfloop>
<td class="totals<cfif r EQ 1>1</cfif>"><cfif r EQ 1>Total<cfelse><input type="text" <cfif labels[r] EQ "Less Advance(if applicable)">id="less"</cfif><cfif labels[r] EQ "Net Due Employee">id="net"</cfif>id="totals" class="ttlR#r#" name="totals#r#" readonly="readonly" /></cfif></td>
</tr>
</cfloop>
正在使用的类名是:date-mask,用于顶行日期,calc用于表的其余部分。
我只需要1个输入就不能为空以允许真正的提交。
有什么想法吗?
修改 这是实时页面的链接。我在这里验证的是两个不同的东西,但基本上是相同的功能。第一行,日期。还有,整个表。如果不是全部,那么每个输入都有一个相同的类。
答案 0 :(得分:2)
@ karim79的代码应该可行。在这里,我写了一个概念证据,它有效:
剧本:
function checkFields() {
var found = false;
$('.huh').each(function(){
if($(this).val()){
found = true;
return false;
}
});
if (found == true) {
alert("at least one field has value");
} else {
alert("all fields are empty");
}
}
加价
<input type="text" class="huh" name="limit1" />
<input type="text" class="huh" name="limit2" />
<input type="text" class="huh" name="limit3" />
<input type="text" class="huh" name="limit4" />
<input type="text" class="huh" name="limit5" />
<input type="button" name="submit" value="Submit" onclick="checkFields();"/>
在干净的html上自己尝试使用此代码,您会发现它确实有效。
添加代码的编辑:代码未到达提醒部分,因为您已在此处返回false:msg + =“请在提交前提供至少1个日期。\ n”;返回false;在您显示警报之前不要返回
答案 1 :(得分:1)
下面:
var found = false;
$('.huh').each(function(){
if($(this).val()){
found = true;
return false;
}
});
答案 2 :(得分:0)
您可以在代码中设置验证标记,如果属实,则提交。
var valid = false;
$('.huh').each(function(){
var value = $(this).val().replace(/^\s\s*/, '').replace(/\s\s*$/, '');
if(value.length > 0){
valid = true;
return false;
}
});
每个中的第一个语句将修剪空格,然后检查值的长度。如果它大于0,我们有一个值;将valid标志设置为true并返回false以停止迭代。
答案 3 :(得分:0)
你可以这样做:
var valid = !!$.makeArray($('input.huh').map(function() { return this.value; })).join('');
说明:
获取所有输入,映射数组以获取值,将数组更改为JS数组并加入。如果至少有一个值,则连接的字符串不为空。
!!只是转换为布尔值(可能是也可能不是必需/可取的)。