我正在尝试使用Ben Keen的RSV Jquery插件来验证通过注册表单提交的电子邮件地址:用户只能提交属于特定域的电子邮件地址。我认为使用插件的reg_exp规则可能是一个解决方案,但我无法让它工作。 我是一个jquery新手,所以我可能犯了一些非常愚蠢的错误:有人能指出我正确的方向吗?
以下是我正在尝试使用的代码,改编自Keen的演示之一:
<script type="text/javascript">
// a custom onComplete handler to prevent form submits for the demo
function myOnComplete()
{
alert("The form validates! (normally, it would submit the form here).");
return false;
}
var rules = [];
// standard form fields
rules.push("reg_exp,reg_exp_field1,/@mydomain\.tld$/gi,Please enter your valid e-mail (e.g. \"@mydomain\.tld\")");
$(document).ready(function() {
$("#demo_form3").RSV({
onCompleteHandler: myOnComplete,
rules: rules
});
});
</script>
使用上面的代码,当我提交有效的电子邮件地址时,这是一个以@ mydomain.tld结尾的地址,我总是收到提醒。我做错了什么?
答案 0 :(得分:0)
没关系,经过进一步的研究,我找到了一个更简单的解决方案:按照this forum thread中的建议,我使用了jqueryValidate而不是rsv插件,并添加了自定义验证方法。 我在这里发布我的解决方案,也许对于像我这样的其他jquery新手来说可能有用!
$(document).ready(function(){
$.validator.addMethod("gmail", function(value, element) {
return this.optional(element) || /^[\w-\.]+@(gmail\.com|yahoo\.com)+$/i.test(value);
}, "Email address must contain gmail or yahoo addresses.");
$("#register_member_form").validate();
});
答案 1 :(得分:0)
我为很多代码编写了RSV。它非常强大。 但是,您错误地使用了它。
无论如何,你以另一种方式解决了你的问题。 :-)那很好。