jQuery对primefaces组件的空验证

时间:2014-02-20 14:41:10

标签: javascript jquery primefaces

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

我正在尝试类似的事情:

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

不幸的是,我看到<p:selectOneMenu>值始终是"",或者p:selectOneRadio是什么?

2 个答案:

答案 0 :(得分:1)

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

考虑到这一点,我将发布如何检查inputText中的空值,selectOneMenu,selectOneRadio in&#34;几乎&#34;通用方式。

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的小部件,并确定我们如何根据组件的类型检查值。

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

可以在github找到一个小工作示例。还有online Demo

希望这有帮助。

答案 1 :(得分:0)

也许是这样的:

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