0

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

我尝试将“.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 规则的解决方案。

4

1 回答 1

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
于 2013-09-23T02:21:59.457 回答