在许多字段集中,使用下一个按钮我会尝试查找是否存在“#required”id输入,然后,如果它为空,则返回false(保留在此字段集中),否则继续操作...
if ($(this).attr('required').length == 0) {
alert ('oui');
if (!$(this).attr('required'))
return false;
}
else
alert ('non');
但$(this).attr('required').length
为undefined
,因为找不到id
。
需要帮助,谢谢大家。
我解释:在fieldset(dynamicaly created)中,如果存在id为#required的输入,我必须检查它是否为空。如果是,单击按钮将返回false。 我是法国人,也是jQuery的新手,所以很遗憾= \
[...]
<fieldset>
<h2 class="fs-title">Accueil Particulier</h2>
<h3 class="fs-subtitle">Nombre de personnes :</h3>
<input type="number" class="required" name="par_venu_f" placeholder="Femme(s)"/>
<input type="number" class="required" name="par_venu_h" placeholder="Homme(s)"/>
<br/><br/><input type="button" name="previous" class="previous action-button" value="Précédent"/>
<input type="button" name="next" class="next action-button" value="Suivant"/>
</fieldset>
[...]
好的,现在我在这里:
if ($(this).parent().children().hasClass('required')) {
if ($(this).parent().children('.required').val().length == 0) {
alert('find, empty')
return false;
};
alert ('find, full');
}
else alert ('not find');
没关系,但只检查第一个输入[type = text],我该如何查看其他输入?
编辑2: 我尝试.each()函数,但不明白它是如何工作的......
非常感谢@TrueBlueAussie,即使我几分钟前发现这一点:
//check if class="required" exist
if ($(this).parent().children().hasClass('required')) {
//start of each class="required"
$(this).parent().children('.required').each(function() {
//if empty, do not continue
if ($(this).val().length == 0) {fill_required = false;};
//end each
});
// end if exist
};
// if there is one empty field, will be false so ...
if (!fill_required) {
// make it true before leave then ...
fill_required = true;
// leave.
return false;
//end if one empty
};
答案 0 :(得分:0)
您不应该在页面上有重复的ID。使用class
或data-...
属性代替“必需”标记,因为它们通常不止一个。
您还需要检查是否存在标志(不是其长度),然后检查输入值(例如使用val()
)。看起来您正在将“必需”测试与“输入字段值为空白”测试混合起来。
如果您使用属性(例如data-required=""
),您的代码将类似于:
if ($(this).data('required') && $(this).val().length == 0) {
alert ('oui');
return false;
}
else
alert ('non');
如果您使用类,它将类似于:
if ($(this).hasClass('required') && $(this).val().length == 0) {
alert ('oui');
return false;
}
else
alert ('non');
我个人建议在这种情况下使用一个必需的类,因为它也意味着你可以设置所需的字段有点不同(输入等不同颜色的边框)。
您可能希望在长度检查之前修剪您的值,以便忽略空白(空格)
如果要检查所有“必填”字段,则需要像这样循环:
// Default is "OK to submit"
var allow = true;
// test each required field for a value
$('.required').each(function(){
$input = $(this);
// If we don't have a value, abort with "NOT OK to submit"
if ($input.val().length == 0){
allow = false;
return false; // <<< this just aborts the each() call
}
}
if (allow){
alert ('non');
}
else {
alert ('oui');
return false;
}
可以简化/缩短,但我希望它能清楚它的作用。