0

当从表单完成提交时,我试图隐藏一个 div。发生了变化,但是当警报(“链接”)结束时,一切又回到了原来的样子。

JavaScript:

<script type="text/javascript" language="javascript">
    function checarLogin(user, pass){
        var e;
        if (user.value == "a") {
            if (pass.value == "b") {
                alert("Bienvenido.");
                e = document.getElementById('login').style.display='none';
                alert("link");
            } else
            alert("Usuario o clave incorrectos.");
        } else
            alert("Usuario o clave incorrectos.");

    }
</script>

HTML:

<div id="login">
    <form onsubmit="checarLogin(user, pass)">
    Ingrese usuario y clave para ver los documentos.
    <div id="inlogin" display="none">
        <br><br>
        Usuario <input name="user" type="text"><br><br>
        Clave <input name="pass" id="clave" type="password"><br>
        <input type="submit">
    </div>
    </form>
</div>

<div id="descargas">
    Descargables.
    <div id="indescargas">
    </div>
</div>

我想隐藏登录 DIV。

4

3 回答 3

1

当您提交表单时,它会往返于服务器。很可能页面正在刷新,这会导致内容恢复到原来的状态。您可以通过使页面变高、向下滚动并提交来测试这一点。如果您弹回顶部,则页面已刷新。

要解决这个问题,您需要使用 ajax 请求来提交表单数据。

于 2012-09-28T01:57:06.180 回答
0

该页面正在提交给自己,添加 return false 应该这样做。http://jsfiddle.net/Y6x5N/

<form onsubmit=" return checarLogin(user, pass);">

function checarLogin(user, pass){
    var e;
    if (user.value == "a") {
        if (pass.value == "b") {
            alert("Bienvenido.");
            e = document.getElementById('login').style.display='none';
            alert("link");
        } else {
        alert("Usuario o clave incorrectos.");
        }
    } else {
        alert("Usuario o clave incorrectos.");
    }
return false;

}​
于 2012-09-28T02:08:39.710 回答
0

发生这种情况是因为表单正在提交到服务器。我假设您要完成的是身份验证功能?一旦用户通过身份验证,登录 div将被删除?

我建议您在服务器端的站点中进行身份验证。如果您打算继续此操作,密码将打印在您的javascript块中,并且用户可以轻松阅读。一旦用户成功通过身份验证,服务器可以轻松地返回另一个页面而无需登录 div。更简单,更安全。

于 2012-09-28T02:09:25.653 回答