簡體   English   中英

jQuery對Primefaces組件的空驗證

[英]jQuery empty validation for primefaces components

我想知道如何通過jQuery檢查是否有一些字段為空。 如果是,我將顯示一個對話框。

我正在嘗試類似的東西:

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

不幸的是,我看到例如<p:selectOneMenu>值始終為"" ,或者p:selectOneRadio呢?

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小部件,並根據組件的類型確定如何檢查值的方式。

現在要擴展它,您需要編寫每個單獨組件的驗證方式。

可以在github上找到一個小的工作示例。 和一個在線演示

希望這可以幫助。

也許是這樣的:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM