Pregunta formulario sin acción y donde ingresar no recarga página


Estoy buscando la forma más adecuada de crear un formulario HTML que no tenga un botón de envío. Eso en sí mismo es bastante fácil, pero también necesito evitar que la forma se vuelva a cargar cuando se hagan cosas parecidas a la presentación (por ejemplo, golpear Entrar en un campo de texto).


73
2017-11-30 07:04


origen


Respuestas:


Agregue un controlador onsubmit al formulario (ya sea mediante js simples o jquery $ (). Submit (fn)), y devuelva falso a menos que se cumplan sus condiciones específicas.

A menos que no desee que el formulario se envíe, ¿en qué caso, por qué no dejar simplemente el atributo 'acción' en el elemento del formulario?


34
2017-11-30 07:08



Querrás incluir action="javascript:void(0);" a su formulario para evitar recargas de página y mantener el estándar HTML.


149
2017-10-29 09:25



Simplemente agrega este evento a tu campo de texto. Evitará una presentación al presionar Enter y podrá añadir un botón de envío o llamar a form.submit () según sea necesario:

onKeyPress="if (event.which == 13) return false;"

Por ejemplo:

<input id="txt" type="text" onKeyPress="if (event.which == 13) return false;"></input>

9
2018-02-03 01:08



Cuando presiona enter en un formulario, el comportamiento natural de la forma es enviarse, para detener este comportamiento que no es natural, debe evitar que se envíe (comportamiento predeterminado), con jquery:

$("#yourFormId").on("submit",function(event){event.preventDefault()})

5
2017-12-01 06:27



una idea:

<form method="POST" action="javascript:void(0);" onSubmit="CheckPassword()">
    <input id="pwset" type="text" size="20" name='pwuser'><br><br>
    <button type="button" onclick="CheckPassword()">Next</button>
</form>

y

<script type="text/javascript">
    $("#pwset").focus();
    function CheckPassword()
    {
        inputtxt = $("#pwset").val();
        //and now your code
        $("#div1").load("next.php #div2");
        return false;
    }
</script>

2
2018-02-01 17:01



Dos formas de resolver:

  1. el valor de acción del formulario es "javascript: void (0);".
  2. agregue oyente de evento de pulsación de tecla para el formulario para evitar el envío.

0
2018-03-09 08:12



La primera respuesta es la mejor solución:

Agregue un controlador onsubmit al formulario (ya sea mediante js simples o jquery   $ (). submit (fn)), y devuelve falso a menos que tus condiciones específicas sean   reunió.

Más específico con jquery:

$('#your-form-id').submit(function(){return false;});

A menos que no desee que se envíe el formulario, ¿en qué caso?   no solo omite el atributo 'acción' en el elemento de formulario?

La escritura de extensiones de Chrome es un ejemplo de dónde puede tener un formulario para la entrada del usuario, pero no desea que se envíe. Si usa action = "javascript: void (0);", el código probablemente funcionará pero terminará con este problema donde se obtiene un error al ejecutar Javascript en línea.

Si omite por completo la acción, el formulario se volverá a cargar, lo que también es indeseable en algunos casos al escribir una extensión de Chrome. O si tiene una página web con algún tipo de calculadora incrustada, donde el usuario podría proporcionar alguna entrada y hacer clic en "Calcular" o algo por el estilo.


0
2018-03-16 21:21