Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/381.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何在表单编辑的jqgrid中验证/发布编辑类型为select的列_Javascript_Jquery_Jqgrid - Fatal编程技术网

Javascript 如何在表单编辑的jqgrid中验证/发布编辑类型为select的列

Javascript 如何在表单编辑的jqgrid中验证/发布编辑类型为select的列,javascript,jquery,jqgrid,Javascript,Jquery,Jqgrid,我想在保存时将包含3个选定字段的表单数据发送到服务器 我该怎么做?我无法在任何函数中检索它们的值: beforeSubmit、onclickSubmit和BeforeCheckValue postData只正确显示员工列数据,甚至不显示部门和角色的任何数据,只显示城市列的值。如果需要验证数据,应首先尝试使用editrules:{custom:true,custom_func:…}请参阅 像beforeSubmit这样的回调包含postdata第一个参数。它的对象属性是已编辑列的名称。属性的值是输

我想在保存时将包含3个选定字段的表单数据发送到服务器

我该怎么做?我无法在任何函数中检索它们的值:

beforeSubmit、onclickSubmit和BeforeCheckValue

postData只正确显示员工列数据,甚至不显示部门和角色的任何数据,只显示城市列的值。

如果需要验证数据,应首先尝试使用editrules:{custom:true,custom_func:…}请参阅

像beforeSubmit这样的回调包含postdata第一个参数。它的对象属性是已编辑列的名称。属性的值是输入用户的值。所以您只需要检查postdata


更新:如果在beforeSubmit中有错误的postdata,则应验证编辑对话框的ID和字段的值是否与colModel的name属性的值相同。我建议您对dataInit代码的临时部分进行注释。在加载select的动态选项时,建议使用dataUrl,对于静态值,建议使用value,如在角色列中。

我使用了editoptions的value和dataInit以及edittype:select来解决此问题。 值:用于提供默认值 dataInit:初始化为所选自动完成/选择

正确的方法

{ 名称:城市,索引:城市,可编辑:真,编辑类型:选择,编辑规则:{必需:真}, 编辑选项:{ 样式:宽度:95%, 值:{选择城市:选择城市}

                dataInit: function (elem) {
                     $(elem).addClass('cityChosen');
                         $(elem).chosen({search_contains:true}); 
                 }//END Dataint
                }
错误的方法

{name:city,index:city,可编辑:true,edittype:select,editrules:{required:true}, 编辑选项:{ 样式:宽度:95%, dataInit:函数元素{ var optionBlank=document.createElement'option'; optionBlank.text=选择城市; optionBlank.value=选择城市; elem.addoptionBlank

                 $(elem).addClass('cityChosen');
                     $(elem).chosen({search_contains:true}); 
             }//END Dataint
            }

第二个将销毁select元素的id。

谢谢Oleg。未使用edittype:select调用custom_func。我将此用于edittype不是select的其他1列。我希望验证数据并将其发送到服务器。我将在beforeCheckValues方法:-posdata对象中获得此结果{:纽约,应用程序:,userDtlGrid\u id:\u empty}。它只显示了2个COL,这太不正确了,colName没有出现在NewYork前面,因为edittype是select。@user2640846:jqGrid首先调用beforeCheckValues,然后为每个可编辑列调用$.jgrid.checkValues。列具有哪个edittype并不重要。我在postD中没有得到列名和值beforeCheckValues中的ata。仅获取1列,而不是全部4列。对象{:纽约,应用程序:,userDtlGrid\u id:\u empty}@user2640846:值:NewYork表明您在colModel中有错误的值。如果您在特定列中有一些问题,您必须在colModel中包含列的定义。您能解释一下哪些值可能是错误的吗?是的,我想它仅适用于特定列,它仅适用于一列。包含定义意味着?
                 $(elem).addClass('cityChosen');
                     $(elem).chosen({search_contains:true}); 
             }//END Dataint
            }