我需要编写一个接受特定用户名和密码的函数。如果密码错误,则会显示错误框,如果正确,则会提交。
我知道这是一个非常基本的问题,但是其中一个难以在谷歌上正确表达的方式,任何帮助将不胜感激。
这是我的代码:
function logon (userName, password)
{
userName = document.GetElementById("testusername");
password = document.GetElementById("testpassword");
if(userName == "username" && password == "password")
{
ONSUtils.LoadPage('pgMain');
}
else
{
// Show Error Message Here
}
}
答案 0 :(得分:1)
问题是您将实际DOM与字符串“username”和“password”进行比较。您需要改为使用value
属性。
function login(){
var username = document.getElementById("testusername").value;
var password = document.getElementById("testpassword").value;
if(username == "username" && password == "password"){
//Log-in
}else{
//Error
}
}
话虽如此, 将用户名和密码放在javascript 文件中是不明智的,因为它们会转移给最终用户,并且可以清楚地读取黑客行为您的安全真的很容易。如果你需要进行安全检查,它确实应该是服务器端。
答案 1 :(得分:0)
实际上你的问题是什么?
无论如何,这个if(userName == "username" && password == "password")
意味着您的用户名和密码存储在页面本身中,对吗?因此,任何能够在浏览器中找到“显示页面源”上下文菜单的人都可以发现您的凭据......
答案 2 :(得分:0)
不幸的是,你不能用纯粹的javascript做到这一点,并且从任何合理的意义上说它都是安全的。正如c-simle所说 - 任何用户都可以点击“查看源”并发现密码。
执行此操作的方法是将表单提交到服务器,然后对数据库进行服务器脚本(php,asp,ror)检查,并返回结果(成功或失败)。您可以使用javascript + ajax或仅通过向服务器提交普通表单来执行此操作。
答案 3 :(得分:-1)
k因为你是javascript的新手,你尝试的是很好的尝试, 现在我将向您解释如何使用javascript进行验证
form:
<form name="frm1" action="submit.html" onsubmit="logon()">
User Name:<input type="text" name="unm" id="unm" />
Password:<input type="text" name="pwd" id="pwd" />
<input type="submit" value="Submit" />
</form>
Function:
function logon()
{
userName = document.GetElementById("unm").value;
password = document.GetElementById("ped").value;
if(userName =="" ||password =="")
{
alert("Enter all the fields correctly");
unm.focus();//or you can check each field separately to focus the empty field
}
if(userName == "username" && password == "password")
{
//it redirects to the page what i gave in form action i.e., submit.html
}
else
{
if(userName != "username")
{
alert("Enter correct UserName");
unm.focus();//this will sends control to the username text box
}
else
{
if(password != "password")
{
alert("Enter correct password");
pwd.focus();//this will sends control to the username text box
}
}
}