2010-12-03 34 views
0

當用戶單擊jqGrid中的編輯時,打開的表單有幾個列表框和文本框。根據列表框中的值,必須禁用幾個文本框,或者僅在表單加載時將其設置爲只讀。jqGrid使用格式化編輯禁用字段基於另一個字段的值

我得到了一塊爲列表框上的onChange事件工作,以切換文本框禁用/啓用,但我努力做到這一點在窗體加載。我嘗試過使用已經有事件處理程序的aftershowform,所以我創建了另一個事件,例如aftershowform2,並附加了此事件,事件處理程序觸發。但問題是列表框是使用Ajax調用動態加載的(dataurl of editoptions),並且在這些列表框中填充選項之前會顯示fires。是否有任何不同的事件在列表框加載後觸發?整個應用程序是由框架驅動的,並且很難粘貼代碼。

回答

1

我看到很多方法可以實現您的要求。

第一,在我看來是的editoptionstype:'change'dataEvents(見this回答爲例)的使用最好的之一。對應的代碼可以是

editoptions: { dataUrl:..., 
       dataEvents: [ 
        { 
         type: 'change', 
         fn: function(e) { 
          var v=$(e.target).val(); 
          alert(v); // do something with selected item value 
         } 
        } 
       ] 
      } 

結合到由dataEvents定義將後select成功返回從所述服務器包含的功能。

另一種方法是修改您的當前實現,以便將jQuery.bind替換爲jQuery.live(請參閱代碼模板here)。

+0

我試過更改事件,但事件不會在表單加載時觸發。正如我之前所說的,更改事件在更改列表框中的選項時觸發。 – anamar 2010-12-06 20:32:39

相關問題