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