【问题标题】:Dijit maxLength via dojo constraint language?通过dojo约束语言Dijit maxLength?
【发布时间】:2013-11-28 10:50:44
【问题描述】:

我正在做一个项目,我试图将约束映射到 XSLT 到 HTML 中的 Dijit 控件。

一个这样的约束是文本字段的最大长度。 但是,我在 Dojo 约束语言中找不到这样的约束。

是否存在我在下面的示例中遗漏的这种约束(不包括 RegEx 约束)?

    <label for="shortField">shortField </label>
    <input id="shortField" data-dojo-type="dijit/form/ValidationTextBox"
        data-dojo-props = "name: 'shortField',
                           width:400,
                           height:150,
                           value: '1234567890',
                           required: true,
                           constraints: { max:10, maxLength:10, length:10, size:10 }
        " />

为了保持一致性,我更喜欢使用约束而不是设置 _TextBoxMixin 的 maxLength 属性。

(不幸的是,在约束中设置正则表达式也是不可取的,因为以后可能会被覆盖,超出我的控制范围。)

【问题讨论】:

    标签: javascript constraints dojo dijit.form


    【解决方案1】:

    似乎不存在这样的约束。此外,由于我发现我还需要验证最小长度,所以我选择了继承 Dijit.Form.ValidationTextBox 的解决方案。

    这是我为 isValid 方法选择的实现,它从约束中读取,因此我可以保持生成的 XSL 代码一致。 )

        isValid : function(){
                    var ancestorsValid = this.inherited(arguments);
    
                    if(ancestorsValid){
                        //Acquire only meaningful validation boundaries.
                        var minLength = this.constraints && this.constraints.minLength ? Number(this.constraints.minLength) : null;
                        var maxLength = this.constraints && this.constraints.maxLength ? Number(this.constraints.maxLength) : null;
    
                        //Validate min and max if present.
                        return  ((minLength === null) || this.value.length >= minLength) &&
                                ((maxLength === null) || this.value.length <= maxLength);
    
                    }
                    return false;
                }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-01-06
      • 1970-01-01
      • 2011-11-18
      • 1970-01-01
      • 1970-01-01
      • 2014-04-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多