web-dev-qa-db-fra.com

Comment supprimer x et y lors de la soumission au format HTML avec le bouton Type d'image?

J'ai créé un formulaire dans ma candidature comme suit:

<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>

Mais lorsque je soumets mon formulaire, l'URL est créée comme suit:

mysitename.com/search/?search=hello&x=0&y=0

Quelqu'un peut-il me dire pourquoi ces x et y viennent dans mon URL. Sur plus de chose au lieu du bouton image si je change mon code de formulaire comme ci-dessous, alors ça marche 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>

mais j'ai besoin d'un bouton d'image pour que ma forme soit belle. Veuillez me dire comment supprimer ces paramètres x et y de l'URL.

50
Prashant

Vous obtiendrez toujours les coordonnées de la souris pour un bouton d'envoi type = "image"

Vous pouvez utiliser un bouton de type d'envoi standard et lui appliquer simplement des styles pour changer l'apparence.

<input type="submit" id="search-submit" value=""
    style="background-image: url(/images/search-button.gif); border: solid 0px #000000; width: WIDTHpx; height: HEIGHTpx;" />
71
Eoin Campbell

Ce sont les coordonnées de la souris du clic. Je ne pense pas qu'il y ait moyen de les empêcher - si vous utilisez un <input type='image'> alors vous les obtenez. Pourquoi est-ce un problème? Ne pouvez-vous pas simplement les ignorer?

Répondre au commentaire de Prashant: Digg ajoute un gestionnaire onclick au <input> (ou éventuellement un gestionnaire onsubmit vers le formulaire) qui crée l'URL de recherche soignée et redirige le navigateur vers cette URL, puis renvoie false pour empêcher le <input> de soumettre le formulaire lui-même. Si vous désactivez JavaScript, vous verrez que vous obtenez les paramètres x et y dans l'URL. Intelligent!

4
RichieHindle

Vous pouvez simplement définir une valeur, pour un bouton d'image, cela remplacera le comportement des coordonnées régulières. Ça a marché pour moi.

Par exemple :

<input type="image" value="submit" src="sup.png" name="supprimer" />

renverra la variable php $_POST['supprimer'] et non ses coordonnées comme bouton d'image. J'espère que cette astuce vous aidera.

1
DarkF
document.getElementById("formid").submit = function() {
    location = "/search/?search=" + encodeURIComponent( document.getElementById("search-box").value );
    return false;
};
1
Chad Grant