这是我在这里提出的第一个问题。
我有一个有4个输入的字段集。如果完成了4个中的至少2个,我想验证表单。我可以使用$("#communications input").val()
获取第一个输入的值。
<fieldset class="input-group-fieldset bigger-labels" id="communications">
<div class="row">
<div class="columns twelve">
<div class="input-group" id="pref-mail-wrap">
<label>Email Address</label>
@Html.TextBoxFor(model => model.PrefferedEmail, new { @class = "contact-group" })
</div>
</div>
</div>
<div class="row">
<div class="columns four">
<div class="input-group" id="pref-phone-wrap">
<label>Telephone No</label>
@Html.TextBoxFor(model => model.PrefferedPhoneNo, new { @class = "contact-group" })
</div>
</div>
<div class="columns four">
<div class="input-group" id="pref-sms-wrap">
<label>SMS No</label>
@Html.TextBoxFor(model => model.PrefferedSmsNo, new { @class = "contact-group" })
</div>
</div>
</div>
<div class="" id="pref-address-wrap">
<div class="row fixed-width">
<div class="columns twelve">
<div class="input-group2">
<label>Address </label>
@Html.TextBoxFor(model => model.PostalAddress)
</div>
</div>
</div>
提前谢谢你, 科斯塔斯。
答案 0 :(得分:1)
您应为所有这些name
元素设置input
属性,然后对其进行序列化并使用以下方法进行检查:
if($('#communications :input').serializeArray().length >=2)
'#communications input'
就足够了
答案 1 :(得分:1)
使用.filter()
,如下所示。
var $completedInputs = $("#communications input:text").filter(function() {
//return the ones witn non-empty values
return $.trim(this.value) != "";
});
if ($completedInputs.length >= 2) {
//At least 2 inputs have been filled.
}
$("#communications input:text")
或$("#communications :text")
=&gt;所有类型为文本的输入
$("#communications input")
=&gt;所有输入
答案 2 :(得分:0)
你可以使用jquery each()来返回超过1个元素的选择器:
$("#communications input").each(function(){
// $(this).val(); check here what you want.
})
答案 3 :(得分:0)
尝试这样的事情。
var count = 0;
$('#communications input').each(function(index, item) {
if($(item).val()!=="") {
count ++;
}
return count <= 2; // break; if more than 2 have values
});
if(count >= 2) {
//valid
}
答案 4 :(得分:0)
您可以使用filter()
来检查inputs
中有多少人获得了值。试试这个:
var validInputs = $("#communications input").filter(function() {
return !$(this).val().trim() == '';
}).length;
if (validInputs < 2) {
// form is invalid...
}
答案 5 :(得分:0)
如果所有输入具有相同的格式且验证相同
尝试迭代fieldset
$("#communications input").each(function(i,v){
});
否则你应该单独验证4个输入。