Domanda

Ho creato un modulo nella mia domanda come segue:

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

Ma quando invio il mio modulo, l'URL viene creato come di seguito:

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

Qualcuno può dirmi perché questo xey sta arrivando nel mio URL. Su più cosa invece del pulsante immagine se sto cambiando il mio codice del modulo come di seguito, allora funziona bene,

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

ma ho bisogno di un pulsante immagine per rendere bello il mio modulo. Per favore, dimmi come rimuovere questi parametri xey dall'URL.

È stato utile?

Soluzione

Otterrai sempre le coordinate del mouse per un pulsante di invio tipo = " image "

È possibile utilizzare un pulsante di tipo di invio standard e applicare solo gli stili per modificarne l'aspetto.

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

Altri suggerimenti

Sono le coordinate del mouse del clic. Non credo che ci sia alcun modo per prevenirli: se usi un <input type='image'>, li ottieni. Perché è un problema? Non puoi semplicemente ignorarli?

Rispondere al commento di Prashant: Digg sta aggiungendo un onclick gestore al <input> (o eventualmente un onsubmit gestore al modulo) che crea l'URL di ricerca dall'aspetto pulito e reindirizza il browser a quell'URL, quindi restituisce false per impedire a x di inviare il modulo stesso. Se disattivi JavaScript, vedrai che ottieni i parametri y e <=> nell'URL. Clever!

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

Puoi semplicemente impostare un valore, per un pulsante immagine, questo sovrascriverà il normale comportamento delle coordinate. Ha funzionato per me.

Ad esempio:

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

restituirà la variabile php $_POST['supprimer'] e non le sue coordinate come pulsante immagine. Spero che questo trucco ti possa aiutare.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top