我有一个包含大量input[type=text]
字段的div。我想检查用户必须填写所有字段,否则显示错误消息。对此,我试过:
if ($('div').children("input[type=text]").attr("value") == '')
flag = false;
else
flag = true;
但是这不会检查所有文本字段,它只检查第一个孩子。我如何检查所有文本字段?
答案 0 :(得分:3)
尝试使用find()
代替
if ($('div').find("input[type=text]").val() == '')
要检查所有输入项,您需要使用each()
迭代它们。
正确的代码是:
$(function() {
$('input:submit').click(function(){
var flag = true;
$('div').find("input[type=text]").each(function(){
if($(this).val() === '') flag = false
});
alert(flag);
});
});
请参阅jsFiddle上的demo。
如果true
内的所有input[type=text]
字段都已填满,则此代码会返回div
,如果至少有一个false
为空,则会返回{{1}}。
答案 1 :(得分:1)
标准方式
if(!$('div').find('#idOfTextField').val()){
//empty
}
答案 2 :(得分:0)
if($("div").find('input:text[value=""]').length > 0)
{
alert("error");
return false;
}