繁体   English   中英

如何使用document.getElementById

[英]How to use of document.getElementById

在我的JSP页面中,我有一个用于登录的表单,其中有两个文本框,名称和ID为“ u”代表用户名,“ p”代表密码。 我将值视为

var user = document.getElementById(“ u”)。value;

var pass = document.getElementById(“ p”)。value;

当应用程序的第一个用户尝试以用户user1身份登录并以pass1身份通过时。 该值被传递到admin.java,后者通过使用request.getParameter获取值。

一切都很好,第一个用户注销后。 另一个用户尝试使用身份验证用户作为user2并以pass2作为密码再次登录,问题出在变量user并传递index.jsp保留了user1和pass1相同的旧值。 我通过警报框检查了这些。 相同的值传递到Admin.java。

index.jsp中的代码是

    function prepareLoginDialog(){
    $dialog = $('<div></div>')
    .html('<div id="dialog-confirm" title="Enter the login details here :">'+
        'User: <input type="text" id="u" name="u" ></input><br />'+
        'Pass: <input type="password" id="p" name="p" ></input>'+
        '</div>')

        //System.out.println(user);
    //System.out.println(pass);
    .dialog({
        autoOpen: false,
        modal: true,
        title: 'Login',
        buttons: {
            'Login': function() {
                //Send Login Request to Server
                alert("I in login");

                var user = document.getElementById("u").value;
                var pass = document.getElementById("p").value;
                alert(user);
                alert(pass);
                //System.out.println(u.text);
                login(user,pass);

                $(this).dialog('close');
            },
            Cancel: function() {
                $(this).dialog('close');
            }
        }
    });

    $('#login').click(function() {
        $dialog.dialog('open');
        // prevent the default action, e.g., following a link
        return false;
    });
}

为什么在两个变量中不采用新值? 我哪里出问题了?

我认为您的问题与我在这里提到的问题相同: AJAX请求完成后变量不会刷新

基本上,如果您每次都重新创建对话框,那么您也在重新创建ID。 这意味着它们不再是唯一的,并且可能导致脚本问题。 尝试向对话框脚本添加close函数,如下所示:

.dialog({
    autoOpen: false,
    modal: true,
    title: 'Login',
    buttons: {
        'Login': function() {
            //Send Login Request to Server
            alert("I in login");

            var user = document.getElementById("u").value;
            var pass = document.getElementById("p").value;
            alert(user);
            alert(pass);
            //System.out.println(u.text);
            login(user,pass);

            $(this).dialog('close');
        },
        Cancel: function() {
            $(this).dialog('close');
        }
    },
    close: function() { $dialog.remove(); } //$(this).remove(); Might also work.
});

当对话框关闭时,这将从DOM中删除该对话框。

从我的其他帖子中:
您的另一选择是将对话框保存在全局变量中,然后检查它是否已定义。 如果没有做您正在做的事情。 如果有的话,设置一个变量以告诉它您正在编辑的项目的ID是什么,并在运行.dialog(“ open”);之前将所有文本框重置为空白。 再次。

它是否仅在您的Box中发生? 为什么不检查清除临时文件和cookie并尝试一下。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM