Javascript 通过dojo约束语言Dijit maxLength?
我正在从事一个项目,试图将约束映射到XSLT到HTML中的Dijit控件上 其中一个约束是文本字段的最大长度。 但是,我在Dojo约束语言中找不到这样的约束 是否存在我在下面的示例中遗漏的约束(不包括正则表达式约束)Javascript 通过dojo约束语言Dijit maxLength?,javascript,constraints,dojo,dijit.form,Javascript,Constraints,Dojo,Dijit.form,我正在从事一个项目,试图将约束映射到XSLT到HTML中的Dijit控件上 其中一个约束是文本字段的最大长度。 但是,我在Dojo约束语言中找不到这样的约束 是否存在我在下面的示例中遗漏的约束(不包括正则表达式约束) <label for="shortField">shortField </label> <input id="shortField" data-dojo-type="dijit/form/ValidationTextBox"
<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 }
" />
shortField
为了保持一致性,我宁愿使用约束,而不是设置_TextBoxMixin的maxLength属性
(不幸的是,在约束中设置正则表达式也是不可取的,因为以后可能会在我无法控制的情况下被覆盖。)似乎不存在此类约束。此外,由于我发现还需要验证最小长度,因此我选择了将Dijit.Form.ValidationTextBox子类化的解决方案 这是我为isValid方法选择的实现,它读取约束,因此我可以保持生成的XSL代码的一致性。)
isValid:function(){
var ancestorsValid=this.inherited(参数);
如果(ancestorsValid){
//仅获取有意义的验证边界。
var minLength=this.constraints&&this.constraints.minLength?编号(this.constraints.minLength):null;
var maxLength=this.constraints&&this.constraints.maxLength?编号(this.constraints.maxLength):null;
//验证最小值和最大值(如果存在)。
返回((minLength==null)| this.value.length>=minLength)&&
((maxLength==null)| | this.value.length
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;
}