¿Cómo eliminar xey al enviar en formato HTML con el botón de tipo Imagen?
-
03-07-2019 - |
Pregunta
He creado un formulario en mi solicitud de la siguiente manera:
<form action="/search/" method="get">
<input id="search-box" name="search" type="text" size=30 title="Search" value="" />
<input id="search-submit" type="image" alt="Search" src="/images/search-button.gif" />
</form>
Pero cuando envío mi formulario, la URL se crea de la siguiente manera:
mysitename.com/search/?search=hello&x=0&y=0
¿Alguien puede decirme por qué aparecen x e y en mi URL?En más cosas en lugar del botón de imagen, si estoy cambiando el código de mi formulario como se muestra a continuación, entonces funciona bien:
<form action="/search/" method="get">
<input id="search-box" name="search" type="text" size=30 title="Search" value="" />
<input id="search-submit" type="submit" value="Search"/>
</form>
pero necesito un botón de imagen para que mi formulario se vea bien.Dígame cómo eliminar estos parámetros xey de la URL.
Solución
Siempre obtendrá las coordenadas del mouse para un botón de envío type = " image "
Puede usar un botón de tipo de envío estándar y simplemente aplicarle estilos para cambiar el aspecto.
<input type="submit" id="search-submit" value=""
style="background-image: url(/images/search-button.gif); border: solid 0px #000000; width: WIDTHpx; height: HEIGHTpx;" />
Otros consejos
Son las coordenadas del ratón del clic.No creo que haya ninguna manera de prevenirlos; si usas un <input type='image'>
entonces los obtienes.Por qué es un problema?¿No puedes simplemente ignorarlos?
Respondiendo al comentario de Prashant:Digg está agregando un onclick
manejador de la <input>
(o posiblemente un onsubmit
controlador al formulario) que crea la URL de búsqueda de aspecto elegante y redirige el navegador a esa URL, y luego devuelve false
para prevenir el <input>
de enviar el formulario en sí.Si desactiva JavaScript verá que obtiene el x
y y
parámetros en la URL.¡Inteligente!
document.getElementById("formid").submit = function() {
location = "/search/?search=" + encodeURIComponent( document.getElementById("search-box").value );
return false;
};
Simplemente puede establecer un valor para un botón de imagen; esto anulará el comportamiento normal de las coordenadas.Funcionó para mí.
Por ejemplo :
<input type="image" value="submit" src="sup.png" name="supprimer" />
devolverá la variable php $_POST['supprimer']
y no su coordenada como botón de imagen.Espero que este truco te ayude.