2009-04-29 5 views
47

私は次のように自分のアプリケーションでフォームを作成しました:Image typeボタン付きのHTMLフォームで送信時にxとyを削除するにはどうすればよいですか?

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

をしかし、私は自分のフォームを提出していたときに、その後URLは以下のように作成されます。誰もが、なぜこのXを教えてくださいすることができ

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

とyは私のURLに来ています。代わりに、イメージボタンのより多くの事、私は以下のように私のフォームコードを変更していた場合、その作業罰金、

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

ではなく、私は私の形が良く見えるように画像ボタンを必要とします。これらのxとyのパラメータをURLから削除する方法を教えてください。

答えて

69

あなたはいつもあなたは、標準タイプのボタンを提出し、単に外観を変更することにスタイルを適用使用することができます

送信ボタンタイプ=「画像」のためのマウスの座標を取得します。

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

最後に私はあなたの解決策を採用しています。別の5-6以上のコードをjavascriptコードでコーディングしています:) – Prashant

+0

甘い作品は、*すべてのスタイルエレメント*を追加した後にチャンピオンになります:) – rogerdpack

+0

、 "color:transparent;"を追加することができます。スタイルに。 Chrome、Safari、Firefoxの最新バージョンで動作しました。 – 23inhouse

4

クリックのマウス座標です。私はそれらを防ぐ方法がないと信じています - あなたが<input type='image'>を使うと、それらを手に入れることができます。なぜそれは問題ですか?あなたはそれらを無視できませんか? Diggは(フォームまたは多分onsubmitハンドラ)<input>onclickハンドラを追加しているきちんと見える検索のURLを構築し、そのURLにブラウザをリダイレクトして、予防するためにfalseを返す:のPrashantさんのコメントに答える

<input>がフォーム自体を送信していません。 JavaScriptを無効にすると、URLにxyのパラメータが表示されます。賢い!

+0

私はそれらを無視したいと思います。私のユーザーは、ウェブ上のウェブサイトの検索URLを共有します。したがって、xとyがURLに来ると、それはうまく見えない長いURLになりますSEOのためにも。そして私は彼らがどのように削除することができると思いますか?私は知らないが、Diggはこれをやっている、ちょうどあなたの検索ページを見て:http://digg.com/search – Prashant

+0

あなたの答えはよく見える、私はjavascriptがこれらのパラメータを取り除く方法だと思う.... – Prashant

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

あなたは、単に画像のボタンに、これは通常の座標の動作をオーバーライドし、値を設定することができます。それは私のために働いた。例えば

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

は、画像ボタンとして座標PHP変数$_POST['supprimer']を返しません。 このトリックがあなたを助けてくれることを願っています。

関連する問題