jqgrid custom_func没有用空白字段执行,无法阻止空白记录

时间:2014-01-29 14:03:08

标签: javascript jquery jqgrid

我正在使用位于jqgrid顶部的PHPGrid。我有一个验证功能,应该确保记录的名称是唯一的,并且名称不是空白的> 2个字符。如果有人点击添加然后输入内容并点击输入,该功能将在内联编辑表单中执行。但是,如果他们只是点击添加然后输入它不执行并发送数据保存。

{
    "name":"school_name",
    "index":"school_name",
    "hidden":false,
    "width":200,
    "edittype":"text",
    "editable":true,
    "editoptions":{"size":"30"},
    "editrules":{"edithidden":false,"required":false,"custom":true,"custom_func":validate_school_name}
},

有列定义

function validate_school_name(val, colname){
    var names = $("[aria-describedby='school_school_name']");

    msg = "";
    alert("Val: "+val);
    if(val =="" || val.length <= 2){
        return [false,"You must enter a school name to continue."]
    }

    for(i=0; i<names.length; i++){
        msg += ""+names[i].innerHTML+" = "+val+"\n" ;
        if(names[i].innerHTML == val){
            return [false," already exists please select a different name"]
        }
    }
    return [true,""];   
}

我正在运行验证功能。

非常感谢任何有关如何在空白记录中执行此操作的想法。

1 个答案:

答案 0 :(得分:0)

从某些基本测试看,如果在editrules中将required设置为false,则不会调用验证函数。不幸的是,如果将其设置为true,它会在调用自定义验证器之前检查空值(带有通用消息)。

然而它可能仍然适用于您,因为它会强制他们在该字段中选择某些内容,然后当它们执行时将在您的自定义函数中进行验证