jqGrid在编辑单元格时只允许使用数字

时间:2011-02-17 13:22:01

标签: jqgrid

我想阻止我的用户在数字字段中输入字母。 我看到有一个选项:editrules:{number:true},但是此选项将让用户单击用户想要的任何键,并且只有在保存行时它才会警告非法输入。这对我来说不是一个好选择。我想从一开始就防止键入不是数字的键(例如在常规输入中我可以使用jQuery的.numeric())。

如何做到这一点?

3 个答案:

答案 0 :(得分:4)

      {name:'actualNo',index:'actualNo',editable:true, edittype:"text", width:150,editoptions:{
                                size: 15, maxlengh: 10,
                                dataInit: function(element) {
                                    $(element).keyup(function(){
                                        var val1 = element.value;
                                        var num = new Number(val1);
                                        if(isNaN(num))
                                        {alert("Please enter a valid number");}
                                    })
                                }
                            }},

答案 1 :(得分:3)

我自己不使用jQuery.numeric插件,但我认为你应该使用dataInit editoptions: { dataInit: function (elem) { $(elem).numeric(/*some optional parameters*/); } } 属性作为相应的网格列:

editoptions: { dataInit: function (elem) {
                   setTimeout(function(){
                       $(elem).numeric();
                   }, 100);
               }
}

或者如果表格中出现问题

{{1}}

我希望它能奏效。

答案 2 :(得分:1)

{name:'rate',index:'rate',align:“left”,width:'150',editable:true,

            edittype:"text", editoptions:{
                size: 25, maxlengh: 30,
                dataInit: function(element) {
                    $(element).keypress(function(e){
                         if (e.which != 8 && e.which != 0 && (e.which < 48 || e.which > 57)) {
                            return false;
                         }
                    });
                }
            }
        },