如何制作包含所需单词的文本框js + HTML

时间:2015-12-09 17:45:12

标签: javascript html

今天我想问一个关于形式的问题(有点)。好吧,所以我希望它在用户将文本放入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>
  &nbsp;
  </BODY>
</HTML>

3 个答案:

答案 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)

好的人,对不起,我没有说出这句话,我想要一个能够像这样精心挑选的词:

食物鸡 如果在文本框中的任何实例中输入了这一个短语,您就可以通过