Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/372.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
基本登录功能(Javascript)_Javascript_Html - Fatal编程技术网

基本登录功能(Javascript)

基本登录功能(Javascript),javascript,html,Javascript,Html,我一直在尝试创建一个登录函数,作为学习Javascript的一种方式。不过,我似乎无法让它充分发挥作用。我可以得到每一个警报,除了“你已登录”显示 我已经对它进行了编辑,所以现在函数接收用户输入,但它只对“Harry”有效,而其他用户名不起作用 var-users=[“哈里”、“朱莉”、“杜威”,5869]; 函数登录(){ var userInput=document.getElementById(“userInput”).value; if(userInput.length==0){ 警

我一直在尝试创建一个登录函数,作为学习Javascript的一种方式。不过,我似乎无法让它充分发挥作用。我可以得到每一个警报,除了“你已登录”显示

我已经对它进行了编辑,所以现在函数接收用户输入,但它只对“Harry”有效,而其他用户名不起作用

var-users=[“哈里”、“朱莉”、“杜威”,5869];
函数登录(){
var userInput=document.getElementById(“userInput”).value;
if(userInput.length==0){
警报('请输入用户名');
返回;
}否则{
检查用户输入(userInput);
}
};
函数checkUserInput(userInput){
对于(var i=0;i
Javascript示例

您需要将添加输入参数“userInput”更新为checkUserInput方法。当您通过checkUserInput(userInput)时;在JSFIDLE代码的第15行

        function checkUserInput(userInput){
            for(var i = 0; i < users.length; i++){
            console.log(users[i]);
              if (users[i] === userInput){
              alert("You are logged in");
              return;
              }
            else{
              alert("Invalid username, please try again or if you are new register");
              return;           
            }
          }};
函数checkUserInput(userInput){
对于(var i=0;i
首先,您需要在
checkUserInput
函数中获取
userInput
。 您正在传递它
checkUserInput(userInput)但未接收

因此:

函数checkUserInput(userInput){…


此外,如果用户与数组中的第一个不匹配,请立即发出警报并返回。请使用indexOf,但注意它与IE不兼容。首先,切勿使用客户端JavaScript实现任何登录功能,因为它充满了安全问题。也就是说,您可以做一些事情来改进代码

HTML:

用于附加侦听器。将对
getElementById
的调用移出函数,以避免重复查询DOM

login
函数中,您可能会丢失
if
语句中的
else
部分。在
checkUserInput
中,您可以使用新方法检查名称是否包含在数组中,尽管浏览器对此的支持不是很好(如果这是一个学习练习,则希望与此无关)

如您所见,我正在将用户在文本字段中输入的值传递给调用
checkUserInput
。这是您发布的代码不起作用的主要原因


HTH.

您需要在第二个函数中接收userInput,因为它只在第一个函数中已知:
函数checkUserInput(userInput){
-你正确地传递了它。这很奇怪,因为它现在可以工作了。但是我昨晚在那里试过了,它不起作用。虽然我已经很晚了。谢谢你的帮助:D。它现在仍然不起作用。到目前为止只有“哈利”登录。因为您发出警报并立即返回julie is not===harryUser希望将此作为练习。另外,我将从checkUserInput(输入)返回false;因此结果可以用于登录功能。最后,indexOf至少在IE9+中有效,includes在IEYeah中根本不起作用。我不想偏离原始代码太远,正如你所说,这是一个练习。但如果你认为它会增加任何价值,请随意编辑我的答案。至于使用indexOf,公平点,但最好使用最新的语法和Transfile编写,不是吗?这两个世界都是最好的。我强烈反对,除非你添加polyfills或babel-我不允许忽略庞大的IE用户baseYeah babel,基本上。我不是建议你忽略IE。是的,这是可行的。虽然这并不能真正帮助我理解为什么我的代码无法运行。有什么方法可以让我忽略它吗我的代码要检查的不仅仅是“Harry”?因为在第一次循环迭代后返回语句。很抱歉,我在这里太笨了,但如何修复它?我尝试删除返回语句,但没有任何帮助。原始代码的工作方式如下:
for(var I=0;I
for every user:check if
(users[I]==userInput)
如果是:警报确定并返回如果否:警报NOK并返回要解决此问题,您应该从NOK条件中删除返回,否则它将在第一次检查时停止。这就是为什么只有Harry可以登录。这很有效。谢谢。我如何才能将此评论^?
function checkUserInput(userInput){
  if(users.indexOf(userInput) > -1){
    alert("You are logged in");
    return;
  }
  else{
    alert("Invalid username, please try again or if you are new register");
    return;           
  }                
};
<form>
  <input type="text" id="userInput" />
  <input type="submit" value="Submit" />
</form>
function login(e) {
  e.preventDefault();
  var input = userInput.value;
  if (input === '') {
    alert('Please enter Username');
    return;
  }

  checkUserInput(input);
}

function checkUserInput(name) {
  if (users.includes(name)){
    alert("You are logged in");
  } else {
    alert("Invalid username, please try again or if you are new register");
  }
}

var form = document.forms[0];
var userInput = document.getElementById("userInput");
var users = ["Harry", "Julie", "Dewey", "5869"];
form.addEventListener('submit', login);