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