
もしかするととても簡単なことかもしれませんが、皆さんよろしくお願いします。
ひとつのページの中にフォームが2つ以上あったとします。
そして画面で言うと、画面のヘッダー部分に、サイト内検索の為のフォームがあって、中段くらいにお問合せの為のフォームがあったとします。
そしてここからが皆さんに教えて頂きたいところなんですが、
今の状態で、エンターボタンを押すと常に検索フォームのサブミットボタンが動作してしまいます。
本当はお問合せ内容を入力したときは、お問合せのフォームの送信ボタンがエンターで動作して、検索フォームのテキストを入力したときは、検索用のフォームのサブミットボタンが反応してほしいと思っています。
入力したフォームによってそれぞれのサブミットボタンがエンターで動作するようにしたいんですが。。。
単純なことかも知れませんが、はまっています。どうぞよろしくお願いいたします。
No.2
- 回答日時:
とりあえず、文法違反を正してみてはいかがでしょうか。
HTMLでは<input>、XHTMLでは<input />と書きます。
それ以外にも</div>とか</td>とか、不正が多いです。
> 検索のテキストボックスに文字を入力し、エンターボタンを押しても、クリックしたときと違う動作をしてしまいます。
書かれているHTMLが違うので、違う動きはしますが、
それぞれ文法や仕様に則った、正しい動作をしていると思います。
> 上のフォームのテキストボックスに文字を入れてエンターを押すとちゃんとした動きをします。
一応確認しておきたいのですが、「ちゃんとした動作をしない」というのは、
「送信しない(ページを移動しない)」ということなのか、
ページは移動するが、search_data=%E6%A4%9C%E7%B4%A2というデータ(UTF-8の場合)が送信されない
ということなのか、どっちでしょうか?
テキストフィールドでエンターキーやリターンキーを押して送信した場合は、search_data=%E6%A4%9C%E7%B4%A2というデータは送られません。
検索ボタンを押してフォームを送信した場合は、検索ボタンのデータを送ります。
これは文法どおりであり、ブラウザの仕様、動作として正しい動作です。
どうしても送信したければhiddenフィールドなどに書いておいて、submitにはnameを付けずに書くようにしてください。
文法違反を見てみたんですが、
それより以前の問題でした。
原因はMETHODをPOSTにしていたんですがGETににすることにより、
思っていた動作が得られました。
ご丁寧にお答えいただき本当にありがとうございました。
No.1
- 回答日時:
<form name="f1" action="hoge.html">
お問い合わせ:<input type="text" name="t1">
<input type="submit">
</form>
<form name="f2" action="hoge.html">
検索:<input type="text" name="t2">
<input type="submit">
</form>
こんな感じでフォームを分けてみてはいかがでしょうか。
※上記のソースは動作確認しておりません。
この回答への補足
早速のご回答ありがとうございます。
上記ご回答のようにフォームは分けております。
フォームを分けているんですが、
<form name="f1" action="hoge.html">
お問い合わせ:<input type="text" name="t1">
<input type="submit">
</form>
<form name="f2" action="hoge.html">
検索:<input type="text" name="t2">
<input type="submit">
</form>
とHTMLで書くと検索のテキストボックスに文字を入力し、エンターボタンを押しても、クリックしたときと違う動作をしてしまいます。
ちなみにソースは
<form action="test.php">
<input type="text" name="search_text">
<input type="submit" value=" GO "><br />
<input type="radio" checked="checked">商品名検索<br />
<input type="radio">A検索<br />
<input type="radio">B検索<br /></div>
</form>
と
<form method="post" action="sozai_search.php">
<input type="radio" value="A" name="kind">
<input type="radio" value="B" name="kind"></td>
<input type="text" name="search_text" size="35" value="" />
<input type="submit" name="search_data" value="検索">
</form>
にしています。
下のフォームのテキストボックスに文字を入れて、エンターを押しても
動きませんが、上のフォームのテキストボックスに文字を入れてエンターを押すとちゃんとした動きをします。
フォームを分ける以外に何か必要なのでしょうか?
よろしくお願いします。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTML&CSS 学習方法のお勧め
-
絶対パスと相対パスについて。
-
HTML&CSS 学習本の相談
-
テーブルの行を折りたたみたい...
-
htmlの文字が縦書きになる
-
ホームページのサイトでhtm...
-
HTMLでクロス抽出したい
-
iPhoneで HTMLファイルを閲覧
-
角丸画像の背景色を透明にした...
-
ホームページを作っていたらhtm...
-
HTML/CSSを使って写真のような...
-
HTMLで特定の文字だけ色を変え...
-
WEBページを強制的に横画面で見...
-
htmlが簡単に作成できるアプリ...
-
css初心者 フレックスボックス...
-
HTML に © は、© を使わず...
-
html 階層を下げると3分割画面...
-
index.htmlがうまく反映されない
-
htmlの<input type=”file”>でア...
-
HTML&CSS メディアクエリにつ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
submitをボタン以外にするには
-
フォーム要素以外にもname属性...
-
リンクをクリックした時にform...
-
JavaScriptでフォームへのフォ...
-
長文のmailtoの使い方
-
1アクションでPOST・GET、両方...
-
type="hidden"を使って時刻を送信
-
URL パラメータを使ってフォー...
-
送信ボタン押下時に値が未入力...
-
submitの処理の後別の画面を表...
-
リロード時にも<input type="re...
-
複数のフォームを一括で送信す...
-
フォームに入力した値をURLに付...
-
CGI動作後に元のページに戻る方法
-
formなしでPOSTデータを送信・受信
-
イメージボタンでクリックしたx...
-
mailtoについて
-
同じnameのhiddenで別々の内容...
-
mailtoの記入を入力フォームを...
-
</form>タグを使用すると強制的...
おすすめ情報