好的,我们页面中有大约30个输入框,而不是为每个输入框写一个无数据行,我们有一个简单的声明:
if( $(div).find('input:text[value=""]').length > 0 ||
$('#checkbox1Wrap').find('input:checkbox:not(:checked)').length > 0 ||
$('#checkbox2Wrap').find('input:checkbox:not(:checked)').length > 0 ||
$(div).find('select option:first-child:selected').length > 0 ||
$(div).find('textarea').val() == ""
){
$(div).prepend('<p class="field_help"> Please complete all fields before moving to next step</p>');
return false;
}
这将检查所有输入字段以检查其长度是否大于0,但我们希望排除某些字段被检查。
例如:
<input type="text" autocomplete="off" value="" name="ext" id="ext">
我们不希望检查上述输入字段。
我们如何才能使if语句跳过某些定义的ID?
答案 0 :(得分:4)
您可以使用.not()
方法:
$(div).find('input:text[value=""]').not('#id1, #id2')
我应该注意,执行此操作的一种标准方法稍微简单一些,但是,如果您不介意将表单的业务逻辑与HTML标记混合:
在HTML中,为所有必需元素添加required
CSS类。
在jQuery中,在选择器中指定该类:
`$(div).find('input.required:text[value=""]')`
现在只验证必需的元素。这种方法有几个优点:
你也可以使用optional
类在相反的方向做同样的事情,但我认为required
在语义上有点好。