jqGrid 更改 beforeShowForm 上某个字段的值

jqGrid Change the value of a field on beforeShowForm

我有一个在预定义字段中有一个值的网格,我想做的是单击编辑一行想要更改 FormEdit 中的一个字段的值。

ColModel 是:

    colModel:[
                {name:'id',index:'ID', width:50, hidden:true, search:false, editable:false,resizable:false},
                {name:'product',index:'product', align:"center", width:20, search:false, editable:false,resizable:false},
                {name:'volume',index:'volume', align:"center", hidden:false, width:15, search:false, editable:true}
                ],

我会在打开编辑表单时设置 volume = 1,我喜欢这样...

 ondblClickRow: function(id){
                jQuery("#products").jqGrid('editGridRow', id, {
                  recreateForm:true,  
                  beforeShowForm: function(form) { 
                      $('#tr_volume',form).show(); 
                      $("#tr_volume",form).val('1');
                      },
                  reloadAfterSubmit:false, closeOnEscape:true, closeAfterAdd:true, closeAfterEdit:true,
                  editable:true, editrules:{edithidden:true,required:true,number:true,minValue:1}                    
               })

但它对我不起作用,怎么了?

您没有使用 volume 列的 hidden: true 属性。所以设置 $('#tr_volume',form).show() 是不需要的。 $("#tr_volume",form).val('1') 的设置是错误的,因为 <tr> 元素没有值。我认为您需要使用 $("#volume",form).val('1')$("#volume").val('1') 来代替。将在表单中创建具有 id="volume"(与列名称相同的 ID)的 <input> 字段。这是您可能尝试更改的字段。