2009-04-29 11 views
47

Ho creato una forma nella mia applicazione come segue:Come rimuovere xey su invio in formato HTML con pulsante Tipo immagine?

<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 ho inviato la mia forma allora URL viene creato come di seguito:

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

Qualcuno può dirmi perché questo xe y sta arrivando nel mio URL. Su cosa di più, invece di pulsante di immagine se sto cambiando il mio codice modulo come di seguito quindi il suo bel lavoro,

<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 a fare il mio modulo di guardare bene. Per favore dimmi come rimuovere questi parametri x e y dall'URL.

risposta

69

Sarai sempre ottenere le coordinate del mouse per un tipo di pulsante submit = "image"

È possibile utilizzare uno standard pulsante di tipo submit e basta applicare stili ad esso per cambiare il look.

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

Finalmente ho adottato la tua soluzione, invece di codificare un altro 5-6 o più .. linee di codice javascript :) – Prashant

+0

dolce funziona un campione una volta aggiunto * ogni singolo elemento di stile * menzionato :) – rogerdpack

+0

Se vuoi inviare un valore , puoi aggiungere "color: transparent;" allo stile Ha funzionato nelle ultime versioni di Chrome, Safari e Firefox. – 23inhouse

4

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

Rispondere commento di Prashant: Digg stanno aggiungendo un onclick gestore per il <input> (o, eventualmente, un onsubmit gestore per la forma), che costruisce l'URL di ricerca accurato dall'aspetto e reindirizza il browser a tale URL, e poi ritorna false per evitare che il <input> dall'invio del modulo stesso. Se disattivi JavaScript vedrai che ottieni i parametri x e nell'URL. Intelligente!

+0

Voglio ignorarli caz i miei utenti condividono l'URL di ricerca del mio sito web sul web e quindi se xey verrà nel mio url allora sarà un URL lungo che non avrà un bell'aspetto così come non è bene anche per la SEO. E penso che possano essere rimossi Come? Non lo so, ma Digg sta facendo questo, basta dare un'occhiata alla loro pagina di ricerca: http://digg.com/search – Prashant

+0

La tua risposta sembra buona, penso che javascript sia il modo per eliminare questi parametri .... – Prashant

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

Si può semplicemente impostare un valore, per un pulsante immagine, questo ignorare il comportamento coordinate regolare. Ha funzionato per me.

Ad esempio:

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

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

Problemi correlati