如何在jqGrid中添加和编辑表单有不同的编辑选项

我有一个jqGrid说明用户信息,将在表单中进行编辑。 用户名是不可变的,但应该出现在表单中,以便用户知道他们正在编辑哪个用户。 密码仅限编辑。 所以在我的colModel中我有这样的设置:

{name:'username', index:'username', width:155, editable:true, editoptions: {readonly:'readonly'}}, {name:'password', index:'password', width:155, hidden:true, editable: true, edittype:'password', editrules:{edithidden:true}}, 

这适用于编辑。 我的问题是添加我需要使用户名’不是只读’。 我没有看到控制添加表单和编辑表单的属性。 也许我可以使用afterShowForm事件来改变编辑选项? 有人做过这样的事吗?

如果它对其他人有用,我无法完全做到这一点,但找到了完成最终结果的方法。

因此,不使用editoptions将表单字段设置为只读,而是使用add&edit选项的beforeShowForm事件来添加和/或删除readonly属性。

所以没有readonly的colmodel:

 {name:'username', index:'username', width:155, editable:true}, {name:'password', index:'password', width:155, hidden:true, editable: true, edittype:'password', editrules:{edithidden:true}}, 

和navGrid编辑和添加选项以打开只读(添加)或关闭(编辑)。 注意,INPUT标记的ID将是colModel中name字段的值:

 jQuery("#user-grid").jqGrid('navGrid','#user-grid-pager', { }, //options { // edit options beforeShowForm: function(frm) { $('#username').attr('readonly','readonly'); } }, { // add options beforeShowForm: function(frm) { $('#username').removeAttr('readonly'); } }, { }, // del options { } // search options ); 

在旁注,虽然我知道(根据jquery转储)’frm’函数arg是一个包含表单的jQuery对象,我无法获得一个选择器来成功选择我想要的孩子,所以我只使用了匹配的id colModel名称。

内置的jqgrid选项可以实现这一点。

http://www.trirand.com/jqgridwiki/doku.php?id=wiki:common_rules

hidden:true,editrules:{edithidden:true,required:true ….},editable:true

因此,您可以使field_name可编辑:false,并使field_id如上所述

这也涵盖了选择框的另一个问题,也适用于它们