我正在使用 Jquery 进行验证,需要从每个具有自己标签的元素中获取 $label。现在alert()给出了med [object object]。对我来说最好的事情是得到一个alert(),其中所有未填写的字段都排列整齐。而不是每个的alert()。
这是一个 fiddle :http://jsfiddle.net/s7pYX/
这是如何实现的?
HTML:
<div>
<label for="txtName">Name</label>
<input type="text" id="txtName" class="form-control" name="txtName">
</div>
<div>
<label for="txtEmail">E-mail</label>
<input type="text" id="txtEmail" class="form-control" name="txtEmail">
</div>
Jquery:
$('input').each(function(){
if ($(this).val() == '') {
$element = $(this)
var $label = $("label[for='"+$element.attr('id')+"']")
alert($label)
}
});
在alert()中我期望这样“您需要填写:姓名,电子邮件”
最佳答案
尝试提醒$label
的内容,可以使用.text()为此
$('input').each(function(){
var $element = $(this)
if ($element.val() == '') {
var $label = $("label[for='"+this.id+"']")
alert($label.text())
}
});
演示:Fiddle
更新
var $labels = $("label[for]");
var empties = $('input').filter(function(){
return $.trim($(this).val()) == ''
}).map(function(){
return $labels.filter('[for="'+this.id+'"]').text()
}).get().join(', ')
alert(empties)
演示:Fiddle
关于jquery - 获取输入字段的标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18375457/