javascript 弹出 concat 不起作用

标签 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 和 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>

最佳答案

你只需要做这样的事情:

<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;
        }

关于javascript 弹出 concat 不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14581920/

相关文章:

asp-classic - 如何使用asp-classic上传文件

javascript - 使用带有 () 函数的绑定(bind)方法 javascript

html - 为什么当我更改列表的高度时元素符号消失了?

span 标签中的 javascript 显示值

html - 无法垂直对齐 TD 内的文本

url - request.serverVariables() “URL”和 “Script_Name”

asp-classic - 服务器对象错误 'ASP 0177 : 800401f3' Server.CreateObject 失败

javascript - 用 CSS3 创建这样的东西?

javascript - jQuery 图像 slider 和 z-index?

javascript - @Input 属性没有被第二次更新