html - formularios - personalizar contact form 7 plugin
Si un formulario HTML tiene dos botones<input type="submit">, ¿cómo sé cuál fue cliqueado? (4)
Supongamos que tengo el siguiente formulario HTML:
<form>
...
<input type="submit" name="queue" value="Queue item">
<input type="submit" name="submit" value="Submit item">
</form>
¿Cómo sé en qué botón hizo clic el usuario (sin usar javascript)?
Miré los datos enviados y parece que cuando se hace clic en "queue" = "Queue Item"
se envía "queue" = "Queue Item"
al servidor. Y cuando se hace clic en "Submit item"
se "submit" = "Submit item"
.
¿Puedo confiar en este comportamiento? ¿Está documentado en alguna parte del estándar en formularios HTML? ¿Como lo hacen ustedes?
Divida el formulario en dos formas, replicando cualquier otra entrada que necesite la otra acción. O bien, si realmente necesita saber si el usuario desea "poner en cola frente a enviar" el elemento, cambie ambos botones de envío a selecciones de radio para alternar entre las dos opciones, y tenga un nuevo botón "enviar el formulario" por separado.
En esa situación, si desea una opción de un solo clic, puede usar Javascript para detectar cuándo se selecciona uno de los botones de opción y enviar automáticamente el formulario al instante. (Uso de Javascript para la interfaz de usuario, en lugar de manejo de formularios)
Puedes confiar en este comportamiento. Obtienes el valor de la entrada. javascript
para alternar un valor de formulario oculto, pero como no mencionó javascript
, no tiene varias opciones.
Es un estándar. Como es una etiqueta de input
y tiene un value
, eso significa que obtiene el value
enviado.
Sí, puedes confiar en ese comportamiento.
Cuando se hace clic en <input type="submit" name="queue" value="Queue item">
, se establecerá el campo "queue" y no se mostrará "submit".
Mientras que cuando se hace clic en el otro, se establecerá el campo "enviar" y "cola" no será.
Si no está seguro de esto, puede dividirlos en 2 formularios y trabajar de esa manera.
Sí, puedes confiar en esto; está completamente documentado here . Las líneas relevantes específicas dicen:
Cuando se envía un formulario para su procesamiento, algunos controles tienen su nombre emparejado con su valor actual y estos pares se envían con el formulario. Los controles para los que se envían pares de nombre / valor se llaman controles exitosos.
y
Si un formulario contiene más de un botón de envío, solo el botón de envío activado tiene éxito.