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}ます。

jqGridcustom: trueの editrules を使用すると、のプロパティを使用して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 に答える