今天我想问一个关于形式的问题(有点)。好吧,所以我希望它在用户将文本放入textarea的地方,但只有在输入某些字符串时才会转到下一页(类似于codeacademy的编辑器)
<HTML>
<HEAD>
<TITLE>this is NOT a password screen!</TITLE>
<SCRIPT language="JavaScript">
<!--hide
var password=prompt('Enter the text:','');
var mypassword="word";
if (password==myword)
{
window.location="pass.html";
}
else
{
window.location="nopass.htm";
}
var myword2="a password";
if (password==myword2)
{
window.location="core2.html";
}
else
{
window.location="nopass.htm";
}
//-->
</SCRIPT>
</HEAD>
<BODY>
</BODY>
</HTML>
答案 0 :(得分:1)
Eric做了更好更复杂的答案,我同意你不应该为密码做这个方法,但如果你想要一个与你想要做的更相似的方法,那么使用indexOf函数或Substring功能取决于您想要做什么。
var userInput = //however you choose to get user input
if (userInput.indexOf("pass1") > -1) {//user input has pass1 in it somewhere
window.location="pass.html";
}
else if (userInput.indexOf("pass2") > -1) //user input has pass2 in it somewhere {
window.location="pass2.html";
}
else {
window.location="nopass.html";
}
如果请求的字符串在原始字符串中不存在,则indexOf返回-1;如果是,则返回从0开始的数字,其中0是第一个字符。如果您只想查看userInput中的特定区域是否为特定单词,请使用
替换If语句中的所有内容(userInput.subString(0, 5) == expectedInput)
注意0是第一个字符,5是第六个字符,但是substring在第二个输入处停止并且不添加它,因此不会返回第六个字符,只返回第5个字符。
所以如果userInput是“thepass1”,那么第一部分将简化为“thePa”,如果expectedInput是“pass1”,那么它将失败。但是,如果userInput是“pass1是密码”,那么它会通过,因为它会简化为“pass1”。
在indexOf示例中,两者都会传递第一个检查,因为pass1位于字符串中的某个位置。
答案 1 :(得分:0)
我认为这是一个用于学习的人为例子,因为你永远不应该检查客户端机器上的密码。
密码检查应始终在服务器端完成,否则您只需将钥匙放在门垫下。
话虽如此,这是一个示例,您可以根据用户输入的内容导航到不同的页面。你的例子让我相信每个'密码'都应该把你送到另一个页面。
https://jsfiddle.net/Ldar81s6/
//array of objects that store 'password' and destination
var passwordLinks = [{
password: "pass1",
page: "myPage1.html"
}, {
password: "pass2",
page: "myPage2.html"
}, {
password: "pass3",
page: "myPage3.html"
}, {
password: "pass4",
page: "myPage4.html"
}];
//define our check password function
function CheckPwd() {
var password = prompt('Enter the password:', '');
//clicking cancel gives null
if (password == null) {
alert("action cancelled");
return;
}
for (var i = 0; i < passwordLinks.length; i++) {
//object in the array at current position of our for loop
passObj = passwordLinks[i];
//if we matched, go to the page (I just did alert)
//also return because we don't need to check anymore, we have what we need
//check against passObj's password
if (passObj.password == password) {
alert(passObj.page);
return;
}
}
//if we haven't exited the function yet, it means that we never matched the password
alert("incorrect password");
}
//call our check password function
CheckPwd();
让我知道什么是有意义的/什么不是
答案 2 :(得分:0)
好的人,对不起,我没有说出这句话,我想要一个能够像这样精心挑选的词:
食物鸡 框 如果在文本框中的任何实例中输入了这一个短语,您就可以通过