我想为custom_func重用以下代码:
function validLen(value,colName){
if(value.length === 8){
return [true,""];
}
else{
return [false,"fail"];
}
}
我尝试给它一个额外的参数如下:
function validLen(value,colName,length){
if(value.length === length){
return [true,""];
}
else{
return [false,"fail"];
}
}
并且这样称呼它:
{name:'cntrct_id', editrules:{custom: true, custom_func:validLen(8)} },
没用。以前的代码可以工作,但如上所述,我想要一个可重用的功能。这有解决方法吗?我做错了吗?
答案 0 :(得分:5)
我建议你使用
editoptions: { maxlength: 8}
而不是您使用的自定义验证。在这种情况下,将直接使用maxlength属性创建input元素。因此,用户将无法输入maxlength
指定的字符数。
更新:您无法更改任何回调函数的界面,但您可以通过以下方式共享不同custom_func
的公共代码。您可以定义具有三个参数的自定义验证函数,例如
function validLen (value, colName, valueLength) {
if (value.length === valueLength) {
return [true, ""];
}
else {
return [false, "fail"];
}
}
并按以下方式使用
{
name: 'cntrct_id',
editrules: {
custom: true,
custom_func: function (value, colName) {
return validLen(value, colName, 8);
}
}
如果您需要在this
内使用custom_func
,则可以将return validLen(value, colName, 8);
更改为return validLen.call(this, value, colName, 8);
。