JavaScript中的HTML更改未停留

时间:2012-09-28 01:52:24

标签: javascript html hide show

当我从表单提交提交时,我正试图隐藏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。

3 个答案:

答案 0 :(得分:1)

当您提交表单时,它会往返服务器。页面很可能是刷新的,这会导致内容恢复原样。您可以通过将页面设置为高,向下滚动并提交来测试。如果您回到顶部,则页面已刷新。

要解决此问题,您可能希望使用ajax请求提交表单数据。

答案 1 :(得分: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;

}​

答案 2 :(得分:0)

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

我建议您在服务器端的站点中进行身份验证。如果您打算继续这样做,密码将打印在javascript块中,并且用户可以轻松阅读。用户成功通过身份验证后,服务器可以轻松返回另一个没有登录 div的页面。更轻松,更安全。