[英]jQuery - Allow only specific email domain to register
我正在尝试使用2种特定的用户类型(称为usertype1
和usertype2
。
usertype1
允许所有电子邮件域 usertype2
仅特定的电子邮件域 在usertype2
中,域列表:
这是我的代码:
(function() { $("#email").attr('placeholder', 'Please put your student email'); $("#usertype").change(function() { if($("#usertype").val() == "usertype1") { $("#email").attr('placeholder', 'Please put your student email'); email = $("#email").split('@').slice(1); var domains = ['schoolA.com', 'schoolB.com', 'schoolC.com']; if ($.inArray(email, domains) ! == 1) { $(':input[type="submit"]').prop('disabled', false); } else { $(':input[type="submit"]').prop('disabled', true); } } else { $("#email").attr('placeholder', 'Please put your student email'); } }); });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select name="school" id="usertype"> <option value="usertype1">School A</option> <option value="usertype2">School B</option> </select> <input type="text" id="email" /> <input type="submit" value="Submit" />
我尝试了我的代码,但是由于缺少参数或某些东西而无法使用。 任何想法如何解决这个问题?
代码段中有几个问题:
()
但从未执行过,这就是“未出现占位符”的原因-没有代码在运行。 建议:将函数包装在$()
以便在加载页面后执行该函数。 $("#email")
没有方法split()
。 我认为这里应该是$("#email").val().split()
。 .slice(1)
返回一个不正确的数组。 要获取电子邮件的域名,这里应该是普通的[1]
。 #userty
选择器时运行。 最好在初始化页面/更改#userty
选择器/更改#email
输入值时使其运行。 解决了这些问题后,就可以开始了。 这是一个有效的代码段:
$(function() { var $email = $("#email"); var $userType = $("#usertype"); var $submitButton = $(':input[type="submit"]'); $email.attr('placeholder', 'Please put your student email'); $userType.change(checkUserType); $email.keyup(checkUserType); checkUserType(); function checkUserType() { if($userType.val() == "usertype1") { $email.attr('placeholder', 'Please put your student email'); var emailDomain = $email.val().split('@')[1]; var domains = ['schoolA.com', 'schoolB.com', 'schoolC.com']; if ($.inArray(emailDomain, domains) < 0) { $submitButton.prop('disabled', true); } else { $submitButton.prop('disabled', false); } } else { $email.attr('placeholder', 'Please put your student email'); $submitButton.prop('disabled', false); } } });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <select name="school" id="usertype"> <option value="usertype1">School A</option> <option value="usertype2">School B</option> </select> <input type="text" id="email" /> <input type="submit" value="Submit" />
还提供了一个jsfiddle供参考。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.