1

我猜随着剑道论坛工作方式即将发生变化(仅限付费客户),在那里得到答案的机会很小,所以我会在这里尝试......

我已经设置了一个可编辑的网格,它对两个数字字段使用自定义验证器。验证器使用 ajax 查询获取有效参数(但我认为这并不重要)。

这一切正常,但我需要 NumericTextBoxes 支持 4 位小数,默认情况下它们不支持。

我为这些字段创建了自定义网格编辑器,这允许我输入 4 个小数位,但它破坏了自定义验证。

如何让 NumericTextBoxes 在编辑模式下支持 4 位小数并允许自定义验证规则?

提前致谢

这是我正在使用的带有验证器的字段定义:

end: { type: 'number', validation: {
    end: function(input){  
        if (input.attr('name')=='end' && $('input[name=lookup]').val()!=''){  
            $.ajax({  
                type: 'post',   
                url: '/ajax/lookupParams',   
                data: { lookup:$('input[name=lookup]').val(), csrf_token: token },  
                success: function(data) {  
                    start = data.start;  
                    end = data.end  
                },  
                   dataType: 'json',  
                   async: false  
                });  
            input.attr('data-end-msg', 'End must be between '+start+' and '+end);  
            return (input.val() >= start && input.val() <= end);  
         }  
         return true;  
     }  
}  

此位有效——ajax 用于根据查找字段的当前值检索有效的开始和结束值。如果我使用自定义编辑器支持 4 位小数,它就会停止工作。

4

1 回答 1

6

KendoUI NumericTextBoxes 支持 4 位小数和验证:

具有以下 HTML:

<input id="num" value="123.456789"
       data-format="n4"
       data-decimals="4"
       data-step="0.0001"
       data-role="numerictextbox"/>

和以下初始化:

$("#num").kendoValidator({
    rules   :{
        custom:function (input) {
            var val = Math.floor(input.val() * 10000);
            return val % 2;
        }
    },
    messages:{
        custom:"Your number * 10000 needs to be odd"
    }
});
kendo.init($("#num"));

这定义了一个NumericTextBox四位数字 - 在可视化和编辑模式下 - 以及一个Validator检查十进制数字的最后一位是否为奇数的自定义。

顺便说一句,欢迎来到 Stack Overflow 上的 KendoUI!

于 2012-11-25T22:21:55.533 回答