jqGrid使用formedit编辑基于另一个字段的值禁用字段

jqGrid使用formedit编辑基于另一个字段的值禁用字段,jqgrid,Jqgrid,当用户在jqGrid中单击Edit时,打开的表单有几个列表框和文本框。根据列表框中的值,在加载表单时,必须禁用几个文本框或将其设置为只读 我在listbox上为onChange事件做了一件工作,将文本框切换为禁用/启用,但我在表单加载上很难做到这一点。我尝试使用aftershowform,它已经有了一个事件处理程序,所以我创建了另一个事件,比如aftershowform2,并附加了这个事件和eventhandler。但问题是,列表框是使用Ajax调用(editoptions的dataurl)动态

当用户在jqGrid中单击Edit时,打开的表单有几个列表框和文本框。根据列表框中的值,在加载表单时,必须禁用几个文本框或将其设置为只读


我在listbox上为onChange事件做了一件工作,将文本框切换为禁用/启用,但我在表单加载上很难做到这一点。我尝试使用aftershowform,它已经有了一个事件处理程序,所以我创建了另一个事件,比如aftershowform2,并附加了这个事件和eventhandler。但问题是,列表框是使用Ajax调用(editoptions的dataurl)动态加载的,在使用选项填充这些列表框之前,会触发aftershowform。加载列表框后是否会触发任何不同的事件?整个应用程序是框架驱动的,很难粘贴代码。

我看到了许多实现需求的方法

在我看来,第一个也是最好的方法是使用带有
类型的
dataEvents
:“change”
(参见答案作为示例)。相应的代码可以是

editoptions: { dataUrl:...,
               dataEvents: [
                   {
                       type: 'change',
                       fn: function(e) {
                            var v=$(e.target).val();
                            alert(v); // do something with selected item value
                       }
                   }
               ]
             }
从服务器成功返回
select
contain后,将绑定到
dataEvents
定义的函数


另一种方法是修改当前实现,以便将替换为(请参见代码模板)。

我尝试了更改事件,但在加载表单时不会触发该事件。正如我前面所说的,更改事件在更改列表框中的选项时触发。@anamar:如果它在代码中不起作用,您应该在问题后面加上完整的代码。如果我能重现你的问题,我会尽力帮助你。