c# - formularios - No puede funcionar con el cuadro de texto html para iniciar sesión
input html atributos (5)
Debido a que estoy usando los botones html y el cuadro de texto para iniciar sesión, debo hacer el código en javascript en el código fuente para poder seguir el código. Si inicio sesión utilizando el nombre de usuario y la contraseña correctos que son Admin y 123 y hago clic en el botón de inicio de sesión, o escribo nada y hago clic en el botón de inicio de sesión, siempre me redirecciona a ResultDetails.aspx. Eso significa que el inicio de sesión falla. El inicio de sesión pasará si me redirecciona a Search.aspx. ¿Qué está mal? Incluso si cambio .Value a .Text, sigue siendo el mismo efecto
MI CÓDIGO FUENTE
<%@ 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>
MI CÓDIGO DETRÁS DEL CÓDIGO
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)
{
}
}
Necesita acceder a los campos adecuadamente
p.ej
if (document.getElementById(''txtUserName'').value == "Admin" && document.getElementById(''txtPassword'').value == "123")
No está utilizando controles de servidor asp.net para acceder a valores como
txtUserName.Value
Por el contrario, está utilizando Javascript on HTML
controles Javascript on HTML
. Entonces, tu sintaxis debería ser como:
if (document.getElementById("txtUserName").value == "Admin" && document.getElementById("txtPassword").value == "123")
Puede probar el siguiente código que obtiene el valor de los cuadros de texto usando el id en JavaScript.
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")
}
}
Si está utilizando Jquery lib en su código, también puede hacer
if($.("#txtUserName").val()=="Admin" && $.("#txtPasword").val()=="123")
if (document.getElementById("txtUserName").value == "Admin"
&& document.getElementById("txtPassword").value == "123")