获取字段集中所有 jquery 输入的值
Get the value of all the jquery inputs within a fieldset
这是我在这里问的第一个问题。
我有一个包含 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>
提前谢谢你,
科斯塔斯
您可以使用 jquery each() 来返回超过 1 个元素的选择器:
$("#communications input").each(function(){
// $(this).val(); check here what you want.
})
尝试这样的事情。
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
}
阅读更多信息:
https://api.jquery.com/each/
您可以使用 filter()
来检查 inputs
中有多少已被赋值。试试这个:
var validInputs = $("#communications input").filter(function() {
return !$(this).val().trim() == '';
}).length;
if (validInputs < 2) {
// form is invalid...
}
如果所有的输入格式相同,验证也相同
尝试遍历 fieldset
中的所有输入
$("#communications input").each(function(i,v){
});
否则您应该分别验证 4 个输入。
您应该为所有这些 input
元素设置 name
属性,然后序列化它们并使用以下方法检查:
if($('#communications :input').serializeArray().length >=2)
'#communications input'
就足够了
使用 .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")
=> 所有类型为文本的输入
$("#communications input")
=> 所有输入
这是我在这里问的第一个问题。
我有一个包含 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>
提前谢谢你, 科斯塔斯
您可以使用 jquery each() 来返回超过 1 个元素的选择器:
$("#communications input").each(function(){
// $(this).val(); check here what you want.
})
尝试这样的事情。
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
}
阅读更多信息: https://api.jquery.com/each/
您可以使用 filter()
来检查 inputs
中有多少已被赋值。试试这个:
var validInputs = $("#communications input").filter(function() {
return !$(this).val().trim() == '';
}).length;
if (validInputs < 2) {
// form is invalid...
}
如果所有的输入格式相同,验证也相同
尝试遍历 fieldset
$("#communications input").each(function(i,v){
});
否则您应该分别验证 4 个输入。
您应该为所有这些 input
元素设置 name
属性,然后序列化它们并使用以下方法检查:
if($('#communications :input').serializeArray().length >=2)
'#communications input'
就足够了
使用 .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")
=> 所有类型为文本的输入
$("#communications input")
=> 所有输入