无法使用 html 文本框登录
Posted
技术标签:
【中文标题】无法使用 html 文本框登录【英文标题】:Can';t work using html textbox to login 【发布时间】:2014-05-01 10:24:57 【问题描述】:因为我是使用html按钮和文本框登录的,所以我必须在源代码中的javascript中做后面的代码才能做后面的代码。无论我使用正确的用户名和密码(Admin 和 123)登录并单击登录按钮,还是不输入任何内容并单击登录按钮,它总是将我重定向到 ResultDetails.aspx。这意味着登录失败。如果将我重定向到 Search.aspx,登录将通过。怎么了?就算我把.Value改成.Text,效果还是一样的
我的源代码
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Login.aspx.cs" Inherits="Login" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<style type="text/css">
</style>
<link rel="stylesheet" type="text/css" href="stylesheets/loginstyle.css" />
<script language="javascript" type="text/javascript">
// <![CDATA[
function Button1_onclick()
if (txtUserName.Value == "Admin" && txtPassword.Value == "123")
//Login as Hardcoded User
//Do your stuff
window.location.assign("Search.aspx")
else
window.location.assign("ResultDetails.aspx")
// ]]>
</script>
</head>
<body>
<div id="wrapper">
<form name="login-form" class="login-form" action="" method="post">
<div class="header">
<h1>Login Form</h1>
<span>Fill out the form below to login to my super awesome imaginary control panel.</span>
</div>
<div class="content">
<input name="username" type="text" class="input username" placeholder="Username" runat="server" id="txtUserName" />
<div class="user-icon"></div>
<input name="password" type="password" class="input password" placeholder="Password" runat="server" id="txtPassword" />
<div class="pass-icon"></div>
</div>
<div class="footer">
<input type="button" name="submit" value="Login" class="button" runat="server" id="Button1" önserverclick="Button1_Click" onclick="return Button1_onclick()" />
</div>
</form>
</div>
<div class="gradient"></div>
</body>
</html>
我的代码隐藏在代码中
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
public partial class Login : System.Web.UI.Page
protected void Page_Load(object sender, EventArgs e)
【问题讨论】:
【参考方案1】:您没有使用 asp.net 服务器控件来访问像
这样的值txtUserName.Value
相反,您使用的是Javascript on HTML
控件。所以,你的语法应该是这样的:
if (document.getElementById("txtUserName").value == "Admin" && document.getElementById("txtPassword").value == "123")
【讨论】:
我必须在源代码中输入我的代码吗?有没有办法在 aspx.cs 文件中生成代码?在源代码中编码就像更难。现在我想在我的登录代码中添加会话,它不能工作@Avinash Kothamasu 您正在客户端登录。会话在服务器端。始终首选执行服务器端登录功能而不是客户端硬编码。您的安全无足轻重,当您网站的 javascript 被禁用时,任何匿名用户都可以登录系统。【参考方案2】:您需要正确访问这些字段
例如
if (document.getElementById('txtUserName').value == "Admin" && document.getElementById('txtPassword').value == "123")
【讨论】:
【参考方案3】:如果您在代码中使用 Jquery lib 你也可以这样做
if($.("#txtUserName").val()=="Admin" && $.("#txtPasword").val()=="123")
【讨论】:
【参考方案4】:您可以尝试以下代码,该代码使用 JavaScript 中的 id 从文本框中获取值。
function Button1_onclick()
if (document.getElementById('txtUserName').value == "Admin" && document.getElementById('txtPassword').value == "123")
//Login as Hardcoded User
//Do your stuff
window.location.assign("Search.aspx")
else
window.location.assign("ResultDetails.aspx")
【讨论】:
【参考方案5】:if (document.getElementById("txtUserName").value == "Admin"
&& document.getElementById("txtPassword").value == "123")
【讨论】:
以上是关于无法使用 html 文本框登录的主要内容,如果未能解决你的问题,请参考以下文章
easyUI draggable插件使用不当,导致拖动div内部文本框无法输入;设置echarts数据为空时就显示空白,不要动画和文字
无法在 iOS 的 Webview 的 html 文本框中写入文本
html 超链接被文本框遮住,无法点击,而且一部分内容被遮挡,请问怎么改?