Saltar al contenido

Formulario HTML con dos botones de envío y dos “objetivo” attributes

Siéntete en la libertad de divulgar nuestro espacio y códigos con tus amigos, necesitamos tu ayuda para ampliar nuestra comunidad.

Solución:

Hago esto en el lado del servidor. Es decir, el formulario siempre se envía al mismo destino, pero tengo un script del lado del servidor que es responsable de redirigir a la ubicación adecuada según el botón que se presionó.

Si tiene varios botones, como

Nota : Usé GET, pero también funciona para POST

Luego puede determinar fácilmente qué botón se presionó, si la variable retry existe y tiene un valor, entonces se presionó reintentar, y si la variable abort existe y tiene un valor, entonces se presionó abortar. Este conocimiento se puede utilizar para redirigir al lugar apropiado.

Este método no necesita Javascript.

Nota : que algunos navegadores son capaces de enviar un formulario sin presionar ningún botón (presionando enter). Por poco estándar que sea, debe tenerlo en cuenta teniendo una idea clara default acción y activándola cada vez que no se presiona ningún botón. En otras palabras, asegúrese de que su formulario no algo sensato (ya sea mostrando un mensaje de error útil o asumiendo un valor predeterminado) cuando alguien presiona ingresar en un elemento de formulario diferente en lugar de hacer clic en un botón de envío, en lugar de simplemente romper.

Es más apropiado abordar este problema con la mentalidad de que un formulario tendrá una acción predeterminada vinculada a un botón de envío y luego una acción alternativa vinculada a un botón simple. La diferencia aquí es que cualquiera que vaya debajo del envío será el que se use cuando un usuario envíe el formulario presionando Intro, mientras que el otro solo se activará cuando un usuario haga clic explícitamente en el botón.

De todos modos, con eso en mente, esto debería hacerlo:

Con este javascript:

var form = document.getElementById('myform');
form.onsubmit = function() 
    form.target = '_self';
;

document.getElementById('btn2').onclick = function() 
    form.target = '_blank';
    form.submit();

Los enfoques que vinculan el código al evento de clic del botón Enviar no funcionarán en IE.

En caso de que tenga HTML5, solo puede usar el attribute formaction. Esto le permite tener una forma diferente action para cada botón.



  
    

Si estás contento con lo expuesto, tienes la libertad de dejar un escrito acerca de qué te ha gustado de este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *