Javascript 是否在jQuery全局验证中排除某个div?
好的,我们在页面中有大约30个输入框,我们没有为每个输入框都写一个无数据行,而是有一个简单的语句:Javascript 是否在jQuery全局验证中排除某个div?,javascript,jquery,Javascript,Jquery,好的,我们在页面中有大约30个输入框,我们没有为每个输入框都写一个无数据行,而是有一个简单的语句: if( $(div).find('input:text[value=""]').length > 0 || $('#checkbox1Wrap').find('input:checkbox:not(:checked)').length > 0 || $('#checkbox2Wrap').find('input:checkbox:not(:checked)').leng
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?您可以使用.not方法:
此处的文档:
我应该注意的是,如果您不介意将表单的业务逻辑与HTML标记混合在一起,那么有一种标准的方法要简单一些:
在HTML中,向所有必需元素添加必需的CSS类
在jQuery中,在选择器中指定该类:
`$(div).find('input.required:text[value=""]')`
现在只验证必需的元素。这种方法有几个优点:
您可以轻松地使用CSS直观地指示所需字段
选择器更简单
如果您决定需要更复杂的验证,那么您已经准备好使用
您也可以使用可选类在相反的方向上做同样的事情,但我认为required在语义上更好一些。您可以使用.not方法:
此处的文档:
我应该注意的是,如果您不介意将表单的业务逻辑与HTML标记混合在一起,那么有一种标准的方法要简单一些:
在HTML中,向所有必需元素添加必需的CSS类
在jQuery中,在选择器中指定该类:
`$(div).find('input.required:text[value=""]')`
现在只验证必需的元素。这种方法有几个优点:
您可以轻松地使用CSS直观地指示所需字段
选择器更简单
如果您决定需要更复杂的验证,那么您已经准备好使用
您也可以使用可选类在相反的方向上做同样的事情,但我认为required在语义上更好一些。这听起来不错,是不是有一个相反的。不是吗?如果是的话,我们可以强制执行?如果这有什么意义的话?我不知道我是否明白。如果使用.not,则要排除的元素不在集合中,因此必须在之后重新添加特定元素:。not'.general'.add'specific'捕获特定元素,即使它具有general类。这就是你的意思吗?否则,您的集合中的所有元素都将被强制执行,对吗?@Latox-请参见编辑-我正在考虑这个问题,我认为我上面描述的方法更可取。这听起来不错,有相反的吗?不是吗?如果是的话,我们可以强制执行?如果这有什么意义的话?我不知道我是否明白。如果使用.not,则要排除的元素不在集合中,因此必须在之后重新添加特定元素:。not'.general'.add'specific'捕获特定元素,即使它具有general类。这就是你的意思吗?否则,您的集合中的所有元素都将被强制执行,对吗?@Latox-请参见编辑-我正在考虑这个问题,我认为我上面描述的方法更可取。