我在我的项目中使用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。如何在另一列中定义的自定义函数中获取其他列值,这些列将以编辑形式,内联编辑和添加表单的形式工作。任何帮助都会非常明显。
答案 0 :(得分:0)
不幸的是custom_func
非常严格,仅提供value
和colname
参数值。但是你可能会编写一些代码来解决这个问题。
您应该能够使用类似于以下代码检测表单:
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