javascript popup concat无法正常工作

时间:2013-01-29 11:32:18

标签: javascript html asp-classic sql-server-2000

我使用一个简单的表单来验证用户登录。我希望在每次成功登录时在我的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&amp; 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>

1 个答案:

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