0

我看到 jqGrid 有自己的内置网格验证属性,如

editrules: 
{
    required: true,
    email: true
}

但是,我有一个布尔函数来检查电子邮件是否有效:

function isValidEmailAddress(emailAddress) 
{    
    var emailPattern = new RegExp(/^[-a-z0-9~!$%^&*_=+}{\'?]+(\.[-a-z0-9~!$%^&*_=+}{\'?]+)*@([a-z0-9_][-a-z0-9_]*(\.[-a-z0-9_]+)*\.(aero|arpa|biz|com|coop|edu|gov|info|int|mil|museum|name|net|org|pro|travel|mobi|[a-z][a-z])|([0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}))(:[0-9]{1,5})?$/i);
    return emailPattern.test(emailAddress);
}

如何根据此功能的结果强制验证器检查电子邮件?

4

1 回答 1

1

使用张贴很奇怪abc: {required: true, email: true}。你的意思是肯定editrules: {required: true, email: true}的。

jqGrid的 editrules 允许您使用custom: true的属性editrules并指定custom_func. 回调函数custom_func应该[true, "", ""]在验证成功的情况下返回数组[false, "some error message"],在错误的情况下返回数组。

例如,您可以使用

editrules: {
    required: true,
    custom: true,
    custom_func: function (value) {
        return isValidEmailAddress(value, columnName)?
            [true, "", ""]:
            [false, columnName + ": " + $.jgrid.edit.msg.email, ""];
    }
}
于 2013-07-12T16:29:04.870 回答