0

我使用一个简单的表单来验证用户登录。我想在每次成功登录时在我的 javascript POPUP 中传递用户名。现在它只显示Hello 。我正在使用连接运算符,但没有运气。

这就是我的 Javascript 的样子

<script language="javascript">
        function show()
        {
            var n = document.getElementById("uname").value;
            alert("Hello "+n);
            return false;
        }
        function noshow()
        {
            alert("Invalid Login");
            return false;
        }
    </script>

HTML & Asp 代码

<form method="post" name="myform">
            <table border="0" width="100%" cellpadding="0" cellspacing="0">
                <tr>
                    <td>User Name:</td>
                    <td><input type="text" name="uname" value="" /></td>
                </tr>
                <tr>
                    <td>Password:</td>
                    <td><input type="password" name="pass" value="" /></td>
                </tr>
                <tr>
                    <td colspan="2" align="center">
                        <input type="submit" value="Login" name="sub" />
                        <input type="reset" value="Clear" />
                    </td>
                    <%
                        if Request.Form("sub") <> "" then
                            sql="select * from login_tbl where u_name = '" & Request.Form("uname") & "' AND pass= '" & Request.Form("pass") & "'"
                            rs.Open sql,con,1,2
                            if rs.Eof then 
                                Response.Write("<script language='javascript'>noshow();</script>")
                            else
                                'Response.Redirect("http://www.google.com")
                                Response.Write("<script language='javascript'>show();</script>")

                            end if
                            rs.Close
                        end if
                    %>
                </tr>
            </table>
        </form>
4

1 回答 1

3

你只需要做这样的事情:

<td><input type="text" id="uname" name="uname" value="<% Response.Write(Request.Form("uname")) %>" /></td>

提交表单后,uname 为空,需要uname在服务器上恢复元素的值。

此外,您正在使用document.getElementById(),但您的 uname 元素没有 id。所以它什么也找不到。为了避免这种情况,您需要将 id 添加到该输入(如我上面的代码中)。

但在这种情况下,uname 将在提交表单后显示用户名。如果不需要,可以执行以下操作:

<%
                        if Request.Form("sub") <> "" then
                            sql="select * from login_tbl where u_name = '" & Request.Form("uname") & "' AND pass= '" & Request.Form("pass") & "'"
                            rs.Open sql,con,1,2
                            if rs.Eof then 
                                Response.Write("<script language='javascript'>noshow();</script>")
                            else
                                'Response.Redirect("http://www.google.com")
                                Response.Write("<script language='javascript'>show('" & Request.Form("uname") & "');</script>")

                            end if
                            rs.Close
                        end if
                    %>

并像这样更新您的功能:

function show(n)
        {
            alert("Hello "+n);
            return false;
        }
于 2013-01-29T11:42:28.123 回答