2011-10-28 15 views
30

Estoy usando este código para tratar de presentar un valor medio de la forma, pero que no parece presentar nada ...Tipo de entrada imagen ¿enviar el valor del formulario?

Me suele utilizar una casilla de verificación o botones de radio para múltiples opciones, pero quiero usar una imagen para hacer esto.

es erróneo el código?

<input id="test1" name="test1" type="image" src="images/f.jpg" value="myValue" alt="" /> 

Así que quiero pasar el valor en value = "myValue".

La forma funciona bien por lo que no es el problema, sólo necesito ayudar con la parte de entrada no presentar ya que sé que funciona.

Gracias

+1

Este código no puede presentar una cosa. ¿Podría escribir todo el código para el formulario? –

+1

Su entrada se ve bien. ¿Cómo se ve el código del lado del servidor? Además, todo el formulario puede ser útil. –

+2

@Michael Sazonov - Sí puede, eso es lo que hacen las entradas de imagen. – Quentin

Respuesta

49

Un input type = "imagen" sólo define esa imagen como el botón de enviar y no como una entrada que puede llevar más de un valor al servidor.

+0

Entonces, ¿qué puedo usar donde puedo usar una imagen? – Satch3000

+0

Solo para aclarar un poco más tu pregunta, ¿estás intentando enviar la imagen al servidor? –

+0

No, tengo una imagen como un botón (o quiero), así que si el usuario hace clic en esta imagen, agrega un valor de value = "myvalue" y este valor se enviará con el formulario. Entonces, en lugar de usar un cuadro de entrada o una casilla de verificación, estoy tratando de usar una imagen. – Satch3000

2

Algunos navegadores (IIRC es sólo algunas versiones de Internet Explorer) enviar solamente las coordenadas del mapa de imagen (en name.x y name.y) e ignorar el valor. Este es un error.

Las soluciones son o bien:

  • tener sólo un botón de enviar y utilizar un campo oculto a enviado el valor
  • uso regular de los botones de envío en lugar de mapas de imagen
  • Use nombres únicos en lugar de valores y comprobar la presencia de name.x/name.y
30

Utilizando el tipo = "imagen" es problemático porque la capacidad de pasar un valor está desactivado por alguna estúpida falta de razón. De todas formas & aunque no es tan personalizable & tanto, tan bonita, puede todavía utiliza imágenes tanto tiempo, ya que son parte de un "botón" type =.

<button type="submit" name="someName" value="someValue"><img src="someImage.png" alt="SomeAlternateText"></button> 

Hope this helps!^_^

+3

Si hace esto, creo que necesita agregar un borde = "0", de lo contrario, algunos navegadores podrían agregar una ventana con borde feo – Dynelight

+4

"Algunos navegadores"? Me pregunto cuáles: P –

+0

funcionó para mí, gracias! –

1

Se puede usar un botón/casilla de radio y configurarlo para ocultar el botón de CSS y luego darle una etiqueta con la imagen.

input[type="radio"] {display: none} 
input[type="radio"] + label span {display: block} 

A continuación, en la página:

<input type="radio" name="emotion" id="mysubmitradio" /> 
     <label for="mysubmitradio"><img src="images/f.jpg" /> 
    <span>if you need it</span></label> 

Y luego otra vez a presentar usando javascript:

document.forms["myform"].submit(); 
-7

Para enviar un formulario que puede usar:

<input type="submit"> 

o

<input type="button"> + Javascript 

Nunca oí hablar de un tipo tan loco para intentar enviar un formulario utilizando una imagen o una casilla de verificación que desee :))

+0

Maldito Daniel, escucha ahora –

6

yo estaba en el mismo lugar que usted, por fin encontré una aseado Respuesta:

<form action="xx/xx" method="POST"> 
    <input type="hidden" name="what you want" value="what you want"> 
    <input type="image" src="xx.xx"> 
</form> 
-2

Añadir esta

name="myvalue" 

Para su etiqueta.

2

Esto es lo que estaba tratando de hacer y cómo lo hice. Creo que querías hacer algo similar. Tenía una tabla con varias filas y en cada fila tenía una entrada con tipo de imagen. Quería pasar una identificación cuando el usuario hizo clic en ese botón de imagen. Como ha notado, el valor de la etiqueta se ignora. En su lugar, agregué una entrada oculta en la parte superior de mi tabla y al usar javascript coloqué la identificación correcta allí antes de publicar el formulario.

<input type="image" onclick="$('#hiddenInput').val(rowId) src="..."> 

De esta manera se le enviará la identificación correcta con su formulario.

4

He encontrado que los botones de imagen SI devuelven una respuesta, pero NO debes usar una opción de valor. Lo que veo devuelto son dos versiones del name="MYNAME" con .X y .Y terminaciones.

Por ejemplo:

<input type="image" src="/path-to/stop.png" name="STOP" width="25" height="25" align="top" alt="Stop sign"> 

Esto está dentro de su <form> a </form>. Si hace clic en la imagen, lo que se devuelve son STOP.X y STOP.Y con valores numéricos. La existencia de cualquiera indica que se hizo clic en el botón de imagen STOP. No necesitas ningún código especial. Simplemente trátelo como otro tipo de botón "enviar" que devuelve un par de NAME aumentados.

He intentado esto en Safari, Firefox y Chrome. La imagen no se mostró con Safari, pero donde se suponía que estaba ubicada, mi cursor se convirtió en un ícono de dedo y pude hacer clic en él.

0

Bueno, si yo estuviera en tu lugar, haría esto. Tendría un campo oculto y, basado en el campo de imagen de entrada, cambiaría el valor del campo oculto (jQuery) y finalmente presentaría el campo oculto cuyo valor refleja el campo de imagen.

1

Solución:

<form name="frmSeguimiento" id="frmSeguimiento" method="post" action="proc_seguimiento.php"> 
    <input type="hidden" name="accion" id="accion"/> 


<input name="save" type="image" src="imagenes/save.png" alt="Save" onmouseover="this.src='imagenes/save_over.png';" onmouseout="this.src='imagenes/save.png';" value="Save" onclick="validaFrmSeguimiento(this.value);"/> 


function validaFrmSeguimiento(accion) 
{ 
    document.frmSeguimiento.accion.value=accion; 

} 

Saludos, jp

Cuestiones relacionadas