Estoy usando MVC para crear una página de inicio de sesión. Tengo una función Javascript que se llama cuando se hace clic en el botón Enviar. Sin embargo, noté en el depurador que la función no se ejecuta completamente. Aquí está mi código:
@{ string loginError = (string)ViewData["loginError"]; } <script type="text/javascript"> function checkLogin() { if (@loginError != null) { var message = '@loginError'; if (message) alert(message); } } </script> <form class="login-form" action="/Login/Login" method="POST"> <div class="login-form__content"> <div class="login-form__header">Login to your account</div> <input class="login-form__input" type="text" name="username" placeholder="Username"> <input class="login-form__input" type="password" name="password" placeholder="Password"> <button class="login-form__button" type="submit" onsubmit="checkLogin();">Login</button> <p></p> <button class="login-form__button" type="submit" formaction="/Register/Create" id="signupbutton">Sign up</button> </div> </form>Entonces, suponiendo que un usuario ingrese las credenciales incorrectas, la variable loginError asignará un valor "Nombre de usuario o contraseña no válidos". Extrañamente, después de la línea: var message = '@loginError', la función simplemente se detiene allí.
¿Hay algo mal con mi código?
Prueba esto:
function checkLogin() { if (@loginError != null) { var message = '@loginError'; if (message) alert(message); } }Lo que creo que sucedió fue que el programa se detuvo porque olvidó sangrar la alerta, y el programa ejecutó alerta (mensaje) cada vez, incluso sin la instrucción if.
Este fue el primer problema que vi, así que tal vez este no sea el problema.
checklogin vuelve a cargar onsubmit y se interrumpe en medio de la ejecución de javascript. asegúrese de poner return falso; onsubmit para ejecutar javascript y deshabilitar la recarga.
puede ver un ejemplo aquí: formulario HTML con llamada de función personalizada
checklogin vuelve a cargar onsubmit y se interrumpe en medio de la ejecución de javascript. asegúrese de poner return falso; onsubmit para ejecutar javascript y deshabilitar la recarga.
puede ver un ejemplo aquí Formulario HTML con llamada de función personalizada