2014-12-03 94 views
1

我正在尝试使用基本的html和jQuery创建人工登录页面。很显然,如果尝试创建“安全”登录,则不会使用此功能。人工登录 - 使用HTML和jQuery

我已经尝试了多种解决方案,但我一直在登录时遇到问题。

的HTML:

<form> 
    <input class="username" type="text" name="username" placeholder="Username" required/> 
     <input class="password" type="password" name="password" placeholder="Password" required/> 
    <button class="signInButton">Sign In</button> 
</form> 

jQuery的:

$(document).ready(function() { 

    var username = $("input[name$='username']").val(); 
    var password = $("input[name$='password']").val(); 
    var signIn = $('.signInButton'); 

    signIn.on('click', function() { 
     event.preventDefault(); 
     if (username === 'admin' && password === '1234') { 
      alert('It Worked!'); 
      $(location).attr('href','http://google.com'); 
     } else { 
      alert('Incorrect Username/Password.'); 
     } 
    }); 

}); 

理想的情况下,在提交正确的价值观,页面应该在别处链接(在这个例子的目的,http://google.com)。

要查看实时示例,jsFiddle

+0

什么是你的问题,你得到了什么错误目前? – Scott 2014-12-03 16:35:55

回答

5

您需要将函数内部的变量,否则他们只是设置一次在页面加载,而不是重新加载在点击:

$(document).ready(function() { 


    var signIn = $('.signInButton'); 

    signIn.on('click', function() { 
     var username = $("input[name$='username']").val(); 
     var password = $("input[name$='password']").val(); 
     event.preventDefault(); 
     if (username === 'admin' && password === '1234') { 
      alert('It Worked!'); 
      $(location).attr('href','http://google.com'); 
     } else { 
      alert('Incorrect Username/Password.'); 
     } 
    }); 

}); 
+0

击败我23秒!我不应该先在JSFiddle上修复它:) – Scott 2014-12-03 16:38:28

4

您需要设置范围内的usernamepassword变量你的点击功能在执行时。像这样:

http://jsfiddle.net/y419usf0/5/

signIn.on('click', function() { 
     event.preventDefault(); 
     var username = $("input[name$='username']").val(); 
     var password = $("input[name$='password']").val(); 
     if (username === 'admin' && password === '1234') { 
      alert('It Worked!'); 
      $(location).attr('href','http://google.com'); 
     } else { 
      alert('Incorrect Username/Password.'); 
     } 
    }); 
+0

嘿,为什么downvotes? – Scott 2014-12-03 16:38:50

+1

我认为@ major-mann的意思是,这不是一个范围问题。但是,这个答案是正确的。 – George 2014-12-03 16:39:59

+0

我明白你的意思了@ major-mann。你是对的,你可以从外部范围访问变量,但是当这样做时它们是不正确的。这就是为什么我把它移到函数内部的原因。 – Scott 2014-12-03 16:41:40