【问题标题】:NumericTextBox with 4 decimal places带 4 位小数的 NumericTextBox
【发布时间】:2012-11-23 17:22:45
【问题描述】:

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

我已经设置了一个可编辑的网格,它对两个数字字段使用自定义验证器。验证器使用 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 位小数,它就会停止工作。

【问题讨论】:

  • 一些代码可以帮助人们理解“自定义验证”的含义。
  • 这就是 $.ajax 调用具有 async:false 的原因——该函数在继续之前等待返回 startend。就像我说的那样 - 验证运行良好,只是在与 Grid 中的自定义编辑器结合使用时无法正常工作。

标签: kendo-ui kendonumerictextbox


【解决方案1】:

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!

【讨论】:

  • 您好 Emiliano,感谢您的提示,但我正在使用 Kendo Grid,因此无法以这种方式定义输入字段。我已经添加了我在上面使用的自定义验证的示例。
猜你喜欢
  • 2017-02-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-29
  • 1970-01-01
  • 1970-01-01
  • 2017-05-04
  • 1970-01-01
相关资源
最近更新 更多