jqgrid / Validation of ID

jqgrid / Validation of ID

本文关键字:ID of Validation jqgrid      更新时间:2023-09-26

我正在尝试创建"验证",它是关于jqgrid中的"ID",以使用"custom"answers"custom_func"。

这是一个自定义函数,用于测试id的值是否与数字和英语(a-z)正确组合。

function id_validation(value, colname) {
var idReg = /[^a-z|^0-9]/gi;
if (!idReg.test(value)) {
    alert("ID는 영숫자 조합만 사용하세요");
    }
}

这是列名"USER_ID",我想应用上面的函数,所以我在"editrules"中使用了"custom"answers"cusotm_func"。

colModel: [               
            {name: 'USER_ID', index: 'USER_ID', editable: true, sortable: false, search: false, editrules: {custom: true, custom_func: id_validation}} ],

除非我输入正确的值,否则这段代码执行得很好。然而,最大的问题是,即使我输入正确值,它也会向我显示警报。无论数值如何,它都会提醒每一种情况。我错过什么了吗?我需要修理哪些零件?

验证的目标不是显示验证消息。应该只通知jqGrid输入是否有效。如果输入无效,则应返回带有错误消息的字符串。因此,如果没有错误,id_validation函数应该返回[true](具有一个true元素的数组)或[true, ""],如果输入数据错误,则返回类似[false, "error message"]的数组。请参阅文档。所以代码应该是关于以下内容的:

function id_validation (value, colname) {
    return /^[A-Za-z0-9]+$/.test(value) ? 
        [true] :
        [false, "ID는 영숫자 조합만 사용하세요"];
}

对于匹配字符串中任何非字母数字字符的正则表达式,您可以简单地使用

[^0-9a-zA-Z]

如果你想像这个一样有效,你也可以简单地添加一个_

[^0-9a-zA-Z_]

因此,如果一个.test(字符串)中有任何符号包含任何非字母数字字符,那么它现在应该匹配;如果每个字符都是字母或数字(或者下划线,如果你想包括它),那么它将不匹配