2012-07-19 74 views
0

我在我的項目中使用Jqgrid。爲了驗證目的,我已經在每列上定義了自定義函數。像,jqgrid自定義函數訪問其他字段值

  { label: 'Name', name: 'Name', width: 300, 
      editable:true, edittype:"custom", sortable:false, 
      editoptions:{custom_element: getDatabaseColumnSelector, 
         custom_value:getSelectedDatabaseColumn}, 
      editrules:{required:true, custom:true, custom_func:somefunction} 
      }, 

在這裏,我要用於驗證目的somefunction(),在這個功能我用其他的列值也進行驗證。有些東西就像

  if employeecountry = "US" then name.length < 10 

但是在這個函數中,我怎麼能得到名稱列的自定義函數中employeecountry的值。我試着用

  "# + rowId + _columnname" 

但這不工作的情況下與附加的形式,因爲ROWID沒有設置在那個時候。如何在另一列中定義的自定義函數中獲得其他列值,這些列值將以編輯表單,內聯編輯和添加表單的方式工作。任何幫助都將非常可觀。

回答

0

不幸的是custom_func是非常嚴格的,只提供valuecolname參數值。但是你可能會寫一些代碼來解決這個問題。

您應該能夠使用類似的代碼來檢測的一種形式:

jQuery('#FrmGrid_mygrid').length > 0 

然後你應該能夠使用代碼等形式在此訪問輸入要素,雖然會取決於什麼類型的變化的輸入控制可用:

jQuery('#mycolname', '#FrmGrid_mygrid').val() 

這有幫助嗎?

這聽起來像你已經有代碼來驗證工作在其他情況下,如內聯編輯。

0

您可以使用這樣的事情:

function my_custom_funct(v){ 
     thisId=$.jgrid.jqID(this.id); 
     var myval = $("#mycolname","#FrmGrid_"+thisId).val(); 
     alert (myval); 
    } 

$ .jgrid.jqID(this.id);獲取當前網格ID。

$(「#FrmGrid _」+ thisId).val();獲取當前Fomr ID