如何让两个密码
我发现这个小提琴http://jsfiddle.net/LpdQm/16/并尝试设置两个可能的密码,如:如何让两个密码
$("#b").click(function() {
var password = "password";
var password2 = "mouse";
var dog = $("#pass").val();
var mouse = $("#pass").val();
if (dog !== password || mouse !== password2) {
$("#err").text("Incorrect password");
} else {
$("#err").text("Password correct! Do whatever you need to do here.");
}
});
,但它不工作。我该如何解决它?
与您在文章中提到的评论者一样,您的解决方案存在一些缺陷。我重新为你写了这个。只需将您想要的密码添加到数组中即可。
$("#b").click(function() {
var passwords = ["password", "dog"]; // All the passwords you want to accept.
if(passwords.indexOf($("#pass").val()) === -1) {
$("#err").text("Incorrect password");
}
else {
$("#err").text("Password correct! Do whatever you need to do here.");
}
});
http://jsfiddle.net/LpdQm/113/
如果这是你想要的答案,按左边的绿色的勾。
同意,阵列是要走的路。你不想手工列举每一种可能性。 'indexOf'是一种更智能的解决方案。 –
@JeremyThille,正是我在想什么。并不是说他们想要接受100万个密码,所以性能不是问题。 – wot
正如@Ken Y-N指出的,问题是OR条件。
if (dog !== password || mouse !== password2)
即使mouse
具有有效的值,它将不会被检查,因为,dog
不等于password
。
你可以尝试这样的事情:
if(!(dog === password || mouse === password2)){ ... }
而且狗和鼠标将保持相同的值。所以最好有1个变量。
你的狗变量引用相同的$(“通行证”) - 对象,然后将鼠标变量 – Flo
你的代码说,你的密码是无效的,如果它不等于“密码”或不等于“鼠标“,因此如果它等于”密码“和”鼠标“,则同时有效。 –
http://jsfiddle.net/LpdQm/118/ –