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 に答える