我在表单中有一些HTML代码,我需要检查具有required="required"
属性的字段是否为空。几乎HTML代码看起来像这样:
<div class="p_name">
<label class="required" for="product_name">Name</label>
<input type="text" maxlength="50" required="required" name="product[name]" id="product_name">
</div>
我正在构建此代码:
$('input[required="required"]').each(function() {
if ($(this).val().length === 0) {
// Here I should get the text of the label element for
// each input and write in the alert but don't know how
alert();
}
});
表单元素由一些带有id
的section元素包装,例如#product-create-step-3
所以基于哪些section元素我应该只查看活动部分中的字段,可以给我一些关于此代码的帮助既然我不知道如何获得标签文本?
答案 0 :(得分:3)
如果您所有字段的HTML结构与发布的相同,则可以使用.prev()
:
$('input[required="required"]').each(function() {
if ($(this).val().length === 0) {
alert($(this).prev('label').text() + ' is required...');
}
});
答案 1 :(得分:1)
$('input[required="required"]').each(function() {
if ($(this).val().length === 0) {
var lbl = $(this).siblings('label');
//or var lbl = $(this).prev('label');
alert(lbl.text());
}
});
答案 2 :(得分:0)
您可以使用.prev()选择器和.text()来提取文本,因为label
元素是相关输入元素的上一个兄弟
$('input[required="required"]').each(function() {
if ($(this).val().length === 0) {
// Here I should get the text of the label element for
// each input and write in the alert but don't know how
alert($(this).prev().text() + ' cannot be blank');
}
});