Ok, así que tengo un formulario con un div presentar y ciertos insumos en » introducir clave de prensa para presentar el formulario.
mi html

<li>
    <label> <span>Username</span>

        <input placeholder="Please enter your username" name="username" class="login_username loginforminput" pattern="[a-zA-Z0-9]{6,}" type="text" tabindex="1" required autofocus>
    </label>
</li>
<li>
    <label> <span>Password</span>

        <input placeholder="Please enter your password" name="password" class="login_password loginforminput" pattern=".{6,}" type="password" tabindex="2" required>
    </label>
</li>
<li>
    <div name="login-submit" id="login-submit" tabindex="3">Sign In</div>
</li>
<li>
    <div class="gotootherform" id="registerpopup" tabindex="4">Register</div>
</li>

Y a mi .js script.

////Clicking 'Enter' on Register Form
  jQuery('#loginforminput').keydown(function(event) {
    if (Event.keyCode == 13) {
            RegisterFormSubmit();   
    }
});

la función funciona como asignado en el onclick de un div, así que no es eso.
¿Qué estoy haciendo mal?

  • .loginforminput != #loginforminput y Event != event
  • event.which es mejor que event.keyCode al usar jQuery jQuery que normaliza.

3 Comentarios

  1. 6

    Javascript es sensible a mayúsculas y minúsculas, por lo que necesita para cambiar esta

    if (Event.keyCode == 13) {
            RegisterFormSubmit();   
    }

    a este

    if (event.keyCode == 13) {
            RegisterFormSubmit();   
    }

    También # selecciona por id en lugar de la clase, utilice ‘.’ para que coincida con las clases de:

     jQuery('.loginforminput')
    • modificado para eso aún nada. mi mala en id/clase estaba jugando se olvidó de cambiar de vuelta! – Nuevas ideas? todo el código está vivo, todavía no funciona :/ Nada en chrome depurador.
    • Hmm obras en este violín jsfiddle.net/hxNyq. (El trabajo en el sentido de que se queja de que no puede encontrar RegisterFormSubmit).
    • Ok Seguro, ¿cómo hago para ver la ‘respuesta’ en JSfiddle? Le echa un vistazo y ver lo que pasa.
    • No estoy seguro de lo que quieres decir por respuesta. Al completar la carga de la página en la esquina inferior derecha, a continuación, utilice el navegador de herramientas de desarrollador en ver los mensajes. (E. g. haga clic en Inspeccionar Elemento en Chrome.)
    • Este fue perfecto gracias. Logró obtener lo resuelto en la final. Saludos
  2. 0

    También debe usar:

    jQuery('.loginforminput') en lugar de jQuery('#loginforminput')

    La # se utiliza para id=»» mientras que el . se utiliza para las clases

    • Gracias este fue mi error, me re-modificado el código y se perdió eso. Gracias por decírmelo.
  3. 0

    Usted debe asignar el controlador de la <form> etiqueta. Si no existe, crea uno. También, al pulsar la tecla intro generalmente presenta un formulario de todos modos.

    $('form').on('submit', function(e) {
      e.preventDefault();
      RegisterFormSubmit();
    });
    • Ok gracias, ¿esto requiere un botón «enviar» o el trabajo sigue sin esto? Como tengo varias formas podría utilizar $(‘#formone’).en(‘enviar’, function(e…. y $(‘#formtwo’).en(‘enviar’, function(e… donde ‘formone’ y ‘formtwo’ son la forma identificador ?
    • Sí. Y usted debe tener un botón de enviar de todos modos para mejorar la usabilidad. Si los formularios que deben utilizar el mismo controlador, a continuación, se puede asignar una clase y el uso $('.formClass').on('submit', function(e){})

Dejar respuesta

Please enter your comment!
Please enter your name here