如何为add&添加不同的编辑选项在jqGrid中编辑表单

时间:2010-01-01 04:32:36

标签: jquery forms 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事件来更改编辑选项?有人做过这样的事吗?

2 个答案:

答案 0 :(得分:7)

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

因此,我没有使用editoptions将表单字段设置为readonly,而是使用了add&的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名称匹配。

答案 1 :(得分:1)

内置的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设为上面

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