无法使用 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 文本框中写入文本

C#中的变量无法从html文本框中获取值

html 超链接被文本框遮住,无法点击,而且一部分内容被遮挡,请问怎么改?

JQuery下focus()无法自动获取焦点的处理方法 jquery如何使文本框获得焦点

python selenium,我无法从文本框中找到元素类或 id