我试图在名为usertype1
和usertype2
的2种特定用户类型中制作注册表单。
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" />
&#13;
我尝试了我的代码但由于缺少参数或某些东西而无法工作。 知道如何解决这个问题吗?
答案 0 :(得分:0)
代码段中有几个问题:
()
但从未执行过,这就是“占位符没有出现”的原因 - 没有代码在运行。建议:在$()
中包装函数,以便在加载页面后执行它。$("#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作为参考。