在规则添加之前从元素ID中删除区分大小写?

时间:2013-09-23 02:18:22

标签: javascript jquery validation

我的注册表单会验证有效的电子邮件地址,然后尝试将提交的电子邮件的域与已批准的域扩展列表进行匹配。它有效,但如果提交的电子邮件域包含大写字母,则匹配规则将返回错误。

我曾尝试将“.tolowercase()”添加到元素ID(#s_email)中,但在应用于规则之前,我无法将其转换为小写。我应该针对过滤后的变量运行规则吗?

<script type="text/javascript">
$.validator.addMethod('matches', function(value, element, param) {
    return this.optional(element) || value.match(param);
    },'<?php _e('Please enter a valid email address.', 'reg_domain_check'); ?>');
$(document).ready(function() {
    $('#s_email').rules("add", {matches: '<?php echo rdc_js_domain_list(); ?>', messages: {matches: '<?php _e('Sorry, your email address has not yet been approved for registration.', 'reg_domain_check'); ?>'}});
});
</script>

我看了一遍,无法找到上述元素ID规则的解决方案。

1 个答案:

答案 0 :(得分:0)

在匹配值的地方使用.toLowerCase()。正如您所说的那样,如果值是小写的话,它匹配正确,那么为什么不将它转换为低位而不是匹配它。

更改

value.match(param);

value.toLowerCase().match(param);

现在您的代码变为

<script type="text/javascript">
$.validator.addMethod('matches', function(value, element, param) {
    return this.optional(element) || value.toLowerCase().match(param);
    },'<?php _e('Please enter a valid email address.', 'reg_domain_check'); ?>');
$(document).ready(function() {
    $('#s_email').rules("add", {matches: '<?php echo rdc_js_domain_list(); ?>', messages: {matches: '<?php _e('Sorry, your email address has not yet been approved for registration.', 'reg_domain_check'); ?>'}});
});
</script