javascript - Dojo 从 javascript 设置验证

标签 javascript validation dojo

当我选择“电话号码”选项时,我有一个选择列表,我在号码字段中设置了“regExp”选项,因此用户必须输入电话号码 以所需的格式。我的选择列表中还有一个“电子邮件”选项,选择后我想为数字字段设置data-dojo-props

换句话说,我使用一个 validationTextField 来捕获电话号码和电子邮件地址。但是,当设置 regExp 时,它不会达到所需的效果,而当为电子邮件设置 data-dojo-props 时,它不会达到所需的效果。在这两个选项中,如果输入了有效值或输入了无效值,验证器都会显示错误(字段上有红色感叹号)。

代码

<input type="text" required="true" name="contactString"
id="contactStringId" placeholder="Your Contact Number"
data-dojo-type="dijit/form/ValidationTextBox"                   
missingMessage="Please Enter Your Contact Number"
title="Contact Number / Email Address :" style="width: 25em;"/>  
 if (contactType.match(/^email|e-mail|mail.*$/)){
        dijit.byId('contactStringId').attr('invalidMessage', 'Invalid ' + contactType.toProperCase() +' Format: www.local-part@domain.com');                    
        dijit.byId('contactStringId').set('data-dojo-props', 'validator:dojox/validate/isEmailAddress');            
        console.log('email settings set');

    }else if(contactType.match(/^cell|home|work|fax|office.*$/)){
        dijit.byId('contactStringId').attr('invalidMessage', 'Invalid ' + contactType.toProperCase() +' Format: (xxx)-xxx-xxxx');   
        dijit.byId('contactStringId').set('regExp', '^[0-9]\d{2}-\d{3}-\d{4}$');        
        console.log('phone number settings set');           
    }

最佳答案

当您以编程方式设置 dojo 小部件属性时,您不会设置 data-dojo-props,通常会设置您想要设置的实际属性。所以你会这样做:

dijit.byId('contactStringId').set("validator", /*whatever validator you want here*/);

更好的方法就是这样做:

var contactStringBox = dijit.byId('contactStringId');
contactStringBox.validator = function() {
  /*
   *whatever validation code you want here
   * like if(this.value === "test") { return false;}
   */
}

关于javascript - Dojo 从 javascript 设置验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23500755/

相关文章:

c# - 自定义验证属性调用另一个验证属性

php - 简单的 PHP 表单验证和验证符号

javascript - Dojo Mobile 过滤长项目列表

javascript - 设置函数变量与使用对象字面量相同吗

javascript - 使用 HTML <html type ="file"id ="uploadfile"> 控件上传文件,无需文件选择对话框

javascript - 在 jquery 中使用事件处理程序中的 "this"

javascript - 上传前的图片高宽

javascript - 道场 dgrid : how style a single row?

Dojox 数据图表实时更新?

javascript - 如果将 JavaScript 函数分配给工作链接,该函数会首先执行吗?