2011-08-13 35 views
2

我有一個腳本,它調用一個PHP文件,並獲取適當的字段,以顯示每次選擇框(類別)更改。與每行一起,有一個值(0或1)來顯示該字段是否需要。如果你看下面,數據上的each()函數顯示「key」是行,「val」表示是否需要。JQuery:在飛行驗證

我目前檢查是否需要,然後將「鍵」推入數組中。現在,棘手的部分,我想修改驗證函數以包含數組「req」中的所有元素(基本上實時建立驗證要求)。目前,只需要「類別」(它需要被添加到驗證的「規則」部分)

$('#category').change(function() { 
    var cid = $(this).val(); 

    $.get('./ajax/get_cat_info.php?cid=' +cid, function(data, textStatus) { 

     var req = new Array(); 

     $.each(data, function(key, val) { 

      $('#' + key).show(); 
      if(val == 1) { 
       req.push(key); 
      } 
     }); 
    }, 'json'); 

    // Validation: 
    $("#submissionForm").validate({ 
     rules: { 
      category: "required" 
     }, 
     messages: { 
      category: "" 
     } 
    }); 
}); 

回答

0

會這樣的幫助嗎?

$('#category').change(function() { 
    var cid = $(this).val(); 
    var myRules = cid.data('rules') || {}; 

    $.get('./ajax/get_cat_info.php?cid=' +cid, function(data, textStatus) { 
     $.each(data, function(key, val) { 
      $('#' + key).show(); 
      if(1 == val) { 
       myRules[key]="required"; 
       cid.data('rules',myRules); 
      } 
     }); 
    }, 'json'); 

    // Validation: 
    $("#submissionForm").validate({ 
     rules : $.extend({category: "required"},cid.data('rules')), 
     messages : { 
      category: "" 
     } 
    }); 
}); 

http://api.jquery.com/jQuery.extend/

http://api.jquery.com/data

請問在本地存儲提供了一種機制,這將有助於這種方法?

謝謝, MyStream