【问题标题】:How do I use the dojo constraints object to customize the text input field for an IP address in my dojo TextBox or NumberTextBox如何使用 dojo 约束对象为我的 dojo TextBox 或 NumberTextBox 中的 IP 地址自定义文本输入字段
【发布时间】:2015-03-20 20:09:37
【问题描述】:

如何使用约束对象为我的 dojo TextBox 或 NumberTextBox 中的 IP 地址自定义文本输入字段。或者我应该使用另一个对象来执行此操作,用户必须正确输入 IP 地址。

我只是想创建一个输入字段供用户输入 IP 地址,这需要这样的内容:pattern:'min:1,max255.min:0,max255.min:0,max255.min:0,max255'

我相信我目前的问题是我正在尝试使用 NumberTextBox 并且它的约束覆盖了我的约束。

我真的很想知道我有哪些可用的约束选项,但我发现的有关 dojo 约束的文档已被弃用,并且替换的链接指向 DateTimeBox。 :|

这是我的代码的 sn-p:

cellWidget.outProActFeedsDestAddr.set('constraints', {pattern:'min:1,max255.min:0,max255.min:0,max255.min:0,max255'});

【问题讨论】:

    标签: javascript input dojo dijit.form dojo.gridx


    【解决方案1】:

    虽然 IP 地址在某种意义上是数字地址,但 NumberTextBox 确实适用于典型的单个数字值,所以这不是一个真正的选择。您可能有两种选择:

    1. 使用 ValidationTextBox 并给它一个适当的regExp(注意,Dijit 需要一个字符串作为这个属性,并在其周围应用^$),或者一个validator 函数(有一个@987654326 @ 你可能会玩)
    2. 编写一个表单小部件,将 4 个 NumberTextBox 实例合并到一个 value 中(我不确定网格是否会在使用这种方法的制表位方面发挥作用)

    【讨论】:

    • 完美 - 谢谢!我试图让我的正则表达式工作 - 似乎没有任何工作。这是我试过的一个:cellWidget.ipColumn.set('regExp', "^([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])\.([01]?\d\d?|2[0-4]\d|25[0-5])$");
    • 我发布了另一个关于让正则表达式工作的问题:stackoverflow.com/questions/29216116/…
    • 所以是的 - ValidationTextBox 和正确的正则表达式为我解决了这个问题。我使用了这个正则表达式(需要双 \\ 我相信让它在我的 dojo ValidationTextBox 中工作):([01]?\\d\\d?|2[0-4]\\d|25[0-5])[.]([01]?\\d\\d?|2[0-4]\\d|25[0-5])[.]([01]?\\d\\d?|2[0-4]\\d|25[0-5])[.]([01]?\\d\\d?|2[0-4]\\d|25[0-5])
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2014-05-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-26
    相关资源
    最近更新 更多