jqgrid自定义函数访问其他字段值

时间:2012-07-19 05:44:58

标签: jquery jquery-ui 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

但是在这个函数中,如何在Name列的自定义函数中获取employeecountry的值。我试过

           "# + rowId + _columnname"

但是这对于添加表单不起作用,因为当时没有设置rowId。如何在另一列中定义的自定义函数中获取其他列值,这些列将以编辑形式,内联编辑和添加表单的形式工作。任何帮助都会非常明显。

2 个答案:

答案 0 :(得分:0)

不幸的是custom_func非常严格,仅提供valuecolname参数值。但是你可能会编写一些代码来解决这个问题。

您应该能够使用类似于以下代码检测表单:

jQuery('#FrmGrid_mygrid').length > 0

然后你应该可以在表单上使用类似这个访问输入元素的代码,尽管它会根据可用的输入控件类型而有所不同:

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

这有帮助吗?

听起来你已经有代码可以在其他场景中进行验证,例如内联编辑。

答案 1 :(得分: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