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列的自定义函数中获得employeecocountry的值。我试过

           "# + rowId + _columnname"

但这在添加表单的情况下不起作用,因为当时没有设置rowId。如何在另一列中定义的自定义函数中获取其他列值,该函数将在编辑表单、内联编辑和添加表单中工作。任何帮助都将非常可观。

遗憾的是,custom_func的限制非常严格,仅提供valuecolname参数值。但您可能可以编写一些代码来解决这个问题。

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

jQuery('#FrmGrid_mygrid').length > 0

然后你应该能够使用这样的代码访问表单上的输入元素,尽管它会根据可用的输入控件类型而变化:

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

这有帮助吗?

听起来您已经有了在其他场景(如内联编辑)中进行验证的代码。

您可以使用这样的东西:

    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

最新更新