2009-04-29 2 views
47

Ich habe ein Formular in meiner Anwendung wie folgt erstellt:So entfernen Sie x und y beim Senden im HTML-Formular mit der Schaltfläche Bildtyp?

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

Aber wenn ich meine Form vorlege dann wird URL wie unten erstellt:

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

Kann mir jemand bitte sagen, warum das x und y kommt in meine URL. statt Bild Taste auf weitere Sache, wenn ich die Änderung meiner Form Code wie unten dann seine Arbeit gut,

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

aber ich brauche ein Bild-Taste, um meine Form zu machen gut aussehen. Bitte sagen Sie mir, wie Sie diese X- und Y-Parameter von der URL entfernen können.

Antwort

69

Sie werden immer Maus-Koordinaten erhalten für einen Knopf submit = „image“

Sie einen Standard verwenden können Typ Submit-Button und nur Arten, um es anwenden um das Aussehen zu verändern.

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

Schließlich habe ich Ihre Lösung angenommen, anstatt eine weitere 5-6 oder mehr Zeilen von JavaScript-Code zu codieren :) – Prashant

+0

süß funktioniert ein Champ, sobald Sie in * jedes einzelne Stilelement * erwähnt :) – rogerdpack

+0

Wenn Sie einen Wert einreichen möchten , Sie können hinzufügen "Farbe: transparent;" zum Stil. Es funktionierte in den neuesten Versionen von Chrome, Safari und Firefox. – 23inhouse

4

Sie sind die Mauskoordinaten des Klicks. Ich glaube nicht, dass es einen Weg gibt, sie zu verhindern - wenn Sie eine <input type='image'> verwenden, dann bekommen Sie sie. Warum ist das ein Problem? Kannst du sie nicht einfach ignorieren?

Answering Prashant Kommentar: Digg hinzufügen eine onclick Handler die <input> (oder möglicherweise ein onsubmit Handler Form), die das ordentlich aussehende Such-URL erstellt und leitet den Browser auf diese URL, und dann kehrt false zu verhindern, die <input> vom Senden des Formulars selbst. Wenn Sie JavaScript deaktivieren, sehen Sie, dass Sie die Parameter x und y in der URL erhalten. Klug!

+0

Ich möchte sie ignorieren caz meine Benutzer teilen Such-URL meiner Website über das Web und daher, wenn die x und y in meiner URL kommen wird es dann eine lange URL, die nicht gut aussieht und nicht gut auch für SEO. Und ich denke, dass sie entfernt werden können. Wie? Ich weiß es nicht, aber Digg macht das, schau dir einfach die Suchseite an: http://digg.com/search – Prashant

+0

Deine Antwort sieht gut aus, ich glaube Javascript ist der Weg diese Parameter zu entfernen .... – Prashant

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

Sie können einfach einen Wert für eine Bild Taste eingestellt, dies wird die reguläre Koordinaten Verhalten außer Kraft setzen. Es hat für mich funktioniert.

Zum Beispiel:

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

kehren das PHP-Variable $_POST['supprimer'] und nicht seine als Bildknopf koordinieren. Hoffe, dieser Trick wird dir helfen.

Verwandte Themen