Javascript primefaces组件的jQuery空验证

Javascript primefaces组件的jQuery空验证,javascript,jquery,primefaces,Javascript,Jquery,Primefaces,我想知道如何通过jQuery检查是否有一些字段是空的。如果是,我将显示一个对话框 我试着说: $('input:text').each(function( index ) { if( $(this).val().length == 0){ ... } }); 不幸的是,例如,我看到的值总是”,或者p:selectOneRadio?可能是这样的: $('input:text').each(function( index ) { if

我想知道如何通过jQuery检查是否有一些字段是空的。如果是,我将显示一个对话框

我试着说:

$('input:text').each(function( index ) {    
    if( $(this).val().length == 0){ 
         ...
    } 
});

不幸的是,例如,我看到
的值总是
,或者
p:selectOneRadio

可能是这样的:

$('input:text').each(function( index ) {    
     if( $(this).val().length == 0 || $.trim($(this).val()) == ""){ 
         alert("empty");
     } 
});

PrimeFaces中的每个组件都有自己的方法来检查值是否为空

考虑到这一点,我将发布如何在inputText、selectOneMenu和selectOneRadio中以“几乎”通用的方式检查空值

for (var propertyName in PrimeFaces.widgets) {
   if (PrimeFaces.widgets[propertyName] instanceof PrimeFaces.widget.InputText) {
      if(PrimeFaces.widgets[propertyName].jq.val().length == 0) {
         PrimeFaces.widgets[propertyName].jq.css('background', 'red')
      } 
    } else if(PrimeFaces.widgets[propertyName] instanceof PrimeFaces.widget.SelectOneRadio) {
      if(PrimeFaces.widgets[propertyName].checkedRadio.length == 0){
         PrimeFaces.widgets[propertyName].jq.css('background', 'red')
       }                                 
    } else if(PrimeFaces.widgets[propertyName] instanceof  PrimeFaces.widget.SelectOneMenu) {
      if(PrimeFaces.widgets[propertyName].getSelectedValue() == '') {
         PrimeFaces.widgets[propertyName].jq.parent().css('background', 'red')
      } 
    }
}
基本上,我们迭代页面中PrimeFaces的小部件,并根据组件的类型确定如何检查值

现在要扩展这个功能,您需要编写每个组件的验证方法

可以在上找到一个小的工作示例。还有一个


希望这能有所帮助。

当我使用$(this).val()时,我在selectOneMenu中选择了一些项目。length==0这是真的。我不知道为什么我在SelectOneMenu中总是得到“”,比如说什么?
是一个普通的HTML选择,所以
$('select').val()!=“”就可以了。但这必须在for的范围之外完成,这是完全不同的验证方式。总之,它应该是$('input:text')。每个(…val==0)$('select')。每个(…val==0)和那些带有primefaces组件的代码?Hmm wird但input:text还返回p:SELECTONE菜单中的项目,并且这些项目始终为“”…--