jqgrid editoptions custom_func with required = false

时间:2017-01-14 12:37:09

标签: jquery jqgrid

当我设置editrules custom_func和required = false时,custom_func仅在用户输入值时有效。我的意思是,如果用户将输入留空,则jqgrid会跳过custom_func。 在我的情况下,我想验证字段值是否为空,具体取决于同一行中的其他用户值。所以我不能在colmodel中设置required = false,因为我需要在提交后验证它。

这是一个伪custom_func,不要注意其内容:

colmodel: [
  {name:'xxx', editrules: {
     required:false, 
     custom:true, 
     custom_func: function(value) {
         if(othercolumn=='blah' && value=='' ) {
             //this is error
         } else {
             //this is correct
         }
     }
  }}
]
编辑:我正在使用jqGrid 4.6.0(我仍在单独的分支中测试免费的4.13.6)

1 个答案:

答案 0 :(得分:1)

首先,我认为您发布了错误的代码属性。我想您在required内使用了customcustom_funceditrules,而不是editoptions内部(请参阅the documentation)。

秒你应该总是包含你使用(可以使用)的jqGrid版本的信息,以及关于jqGrid的分支(free jqGrid,商业Guriddo jqGrid JS或版本中的旧jqGrid< = 4.7)。不同版本和jqGrid的不同分支的可能性是不同

要解决您的问题,您应该不要在列中指定 required属性或使用required: undefiled。仅在显式使用required: true的情况下,验证将由空值停止。如果您明确指定 required: false,则不会在空值上调用custom_functrue属性falserequired的任何其他值都允许您进行自定义验证。

您遇到的下一个问题是需要访问另一列的值以进行自定义验证。它应该是单独问题的一部分。了解你使用的jqGrid的分支,jqGrid的版本和编辑模式(内联编辑,表格编辑或单元格编辑)非常重要。