Onclick事件;如果和其他

时间:2012-12-08 16:14:53

标签: javascript html

好的,所以我正在为登录类型表单执行javascript代码,它会引导您进入新页面。这是:

function submit1()
{
    var x=document.getElementById("username");
    var y=document.getElementById("password");
    if (x.value=="username" && y.value=="password")
    {
        window.location="Example.php";
    }
    else
    {
        window.alert=("The information you have submitted is incorrect and needs to be submitted again!");
    }
}

当我按下提交按钮时,它会直接转到页面,而不是检查是否正确。请帮忙! 先谢谢你! 告诉您这不是永久登录网页!

4 个答案:

答案 0 :(得分:3)

执行此操作的简便方法是使用button输入:

<input type="button" value="Check" onclick = "submit1();" />

另一种方法是通过使处理程序返回submit来防止false类型输入的此默认行为。你的HTML看起来像这样:

<input type="submit" value="Check" onclick = "return submit1();" />

您的功能需要更改(考虑到您希望重定向)。我假设您要保留输入的数据,因此我不打算使用window.location重定向。相反,我将允许提交表单:

function submit1()
{
    var x=document.getElementById("username");
    var y=document.getElementById("password");
    if (x.value == "username" && y.value == "password") {
        window.alert=("The information you have submitted is incorrect and needs to be submitted again!");
        return false;
    }
}

答案 1 :(得分:2)

<html>
<head>
<title>
Login page
</title>
</head>
<body>
<h1 style="font-family:Comic Sans Ms;text-align="center";font-size:20pt;
color:#00FF00;>
Simple Login Page
</h1>
<form name="login">
Username<input type="text" name="userid"/>
Password<input type="password" name="pswrd"/>
<input type="button" onclick="check(this.form)" value="Login"/>
<input type="reset" value="Cancel"/>
</form>
<script language="javascript">
function check(form)/*function to check userid & password*/
{
 /*the following code checkes whether the entered userid and password are matching*/
 if(form.userid.value == "myuserid" && form.pswrd.value == "mypswrd")
  {
     window.location="Example.php"; /*opens the target page while Id & password matches*/
  }
 else
 {
   alert("Error Password or Username")/*displays error message*/
  }
}
</script>
</body>
</html>

答案 2 :(得分:1)

事件需要取消默认事件并返回false。这将阻止表单提交。

但是,如果表单仍然提交,那么它应该是一个非问题,因为JavaScript不可信,因此你必须验证服务器端的所有输入。

答案 3 :(得分:1)

<form method="post" action="." id="myform">
 <!-- form contents --->
</form>    
<script type="text/javascript">
(function () {
    var f = document.getElementById('myform'), // get your form element
        x = document.getElementById('username'),
        y = document.getElementById('password'),
        handler;
    handler = function (e) {
        e.preventDefault(); // stop submit
        if (x.value=='username' && y.value=='password') {
            window.location = 'Example.php';
        } else {
            window.alert('The information...');
        }
    };
    // listen to submit event
    if ('addEventListener' in f) {
        f.addEventListener('submit', handler, false);
    } else { // handle also IE...
        f.attachEvent('submit', function () {
            handler(window.event);
        });
    }
}());
</script>

无论如何,看起来你正试图从JS检查登录/密码什么不是最好的想法(任何人都可以查看源代码并阅读它)