• ベストアンサー

エンターでsubmitさせたい

テキストボックスが複数あるようなフォームを作っているのですが、 submitボタンを表示させず、エンターのみで動作するものを作りたいと思っています。 stype="display:none;"で表示を消すことができたのですが、 エンターを押しても動作しません。 ご存知の方教えて頂けると大変助かります。 <form method="post"> <input type="text" size="10" name="obj1"> <input type="text" size="10" name="obj2"> </form> <? print $_POST['obj1']."<br>"; print $_POST['obj2']."<br>"; ?>

  • PHP
  • 回答数3
  • ありがとう数2

質問者が選んだベストアンサー

  • ベストアンサー
  • Gizensha
  • ベストアンサー率34% (207/608)
回答No.3

試してないけど、INPUT type="image" ってenterに反応するかな。 # ブラウザによって送信できなくなってしまうのでボタンを隠すことはあまり賛成できません。

TERIMAYO
質問者

補足

type=imageで透過gifを1x1で表示させ対応しました。 助言本当にありがとうございます。

その他の回答 (2)

noname#84373
noname#84373
回答No.2

<html> <body> <form method="post" name="fm" action="test.php"> <p> <input type="text" name="t1"><br> <input type="text" name="t2"><br> <input type="text" name="t3"><br> <input type="text" name="t4" class="end"><br> </p> </form> <script> window.onload = function(){ document.body.onkeypress = chk; } function chk(e){ var o=e?e.target:event.srcElement; e=e?e:window.event; if(e.keyCode!=13) return; if(o.className.match(/end/)) document.fm.submit(); if(o.type!='text') return; var elms = document.getElementsByTagName('input'); for(var i=0,mx=elms.length-1;i<mx;i++){ if(o==elms[i]) elms[i+1].focus(); } } </script>

TERIMAYO
質問者

お礼

コードまで書いていただいてありがとうございます。 明日早速試してみたいと思います。

回答No.1

「enter」とは、キーボードのenterキーのことですよね? キーボードでsubmit することは、簡単です。 javascript で キーイベントを拾って、form を submit するだけで出来ます。 具体的な コードは、調べてみてください。 実際、難しくないですから。 PHP だけでは....不可能です。

TERIMAYO
質問者

お礼

やはりjavascriptで無理やりsubmitさせる方法しかないようですね。 ありがとうございました。

TERIMAYO
質問者

補足

<form method="post"><input type="text" size="10" name="obj1"></form> 上記のような感じで、テキストボックス1個では動作したもので、 なんとか方法無いかなと思い質問させて頂きました。

関連するQ&A

  • display: none をすると Enter キーでサブミットできなくなる

    問題の原因がJavaScriptの範疇なのか(JSなのかHTMLなのかIEなのか CSSなのかそれとももっと別の部分なのか)どうかも分かりませんが、 以下のようにすると(恐らくIEのバグ?によって)IEでEnterキーで サブミットできなくなります。 (テストのために重要な部分だけPerlで簡略化して出力しています) #!perl print "Content-type: text/html\n\n"; print <<"HTML"; <body onload="document.form1.style.display = 'block'; document.form1.input0.focus();"> <form name="form1" style="display: none;"> HTML for(my $i = 0; $i < 50; $i++) { print qq(<input type="text" name="input$i"><br>\n); } print <<"HTML"; <input type="submit"> <input type="reset"> </form> </body> HTML 概要 1. 画面外にはみ出す量のフォーム内容をdisplay: noneしてから JavaScriptで表示します。 2. フォームにフォーカスを与えてEnterキーを押しても反応しません。 3. display: noneしなければEnterキーが効きます。 4. 一度画面内にサブミットボタンを表示させると効くようになりますが サブミットボタンを画面から外した後に更新をかけるとまた効かなく なります。 4. IE 以外では正常動作するようです(テストしたIEのバージョンは 6.0 SP2)。 説明が下手で分かりにくいかもしれませんがこれの原因の詳細と 対策はありませんか。

  • 2つのsubmitボタンがあるときに

    最初に書いたボタンが優先され 単にリターンキーを押したときに 最初のsubmitボタンが反応します。 後のsubmitボタンが反応するようにするにはどうしたらいいのでしょうか? つまり下記のPHPをブラウザに表示させているときにリターンキーを押したときには submit2 is pushed. と表示させるにはどうしたらいいのでしょうか? <form method="post" action="<?=$PHP_SELF?>"> <input type="text"/><br/> <input type="checkbox"/><br/> <input type="radio" name="radio"/><br/> <input type="submit" name="submit" value="submit1" tabindex=-1/><br/> <input type="submit" name="submit" value="submit2" tabindex=1/><br/> </form> <?php if(isset($_POST['submit'])) { echo$_POST['submit'].' is pushed.'; } ?>

    • ベストアンサー
    • PHP
  • 1つのformに2つのsubmitボタン

    を配置した場合 受け取ったPerlは その2つのどちらが押されたかを知ることができるのでしょうか? その場合どうしたら言いのでしょうか? <form method='post' action='http://perl/x.pl'> <input type='submit'/><br/> <input type='submit'/><br/> <input type='text' name='data'/> </form> で第1のサブミットが押されたときには dataを大文字で表示し 第2のサブミットが押されたときには dataを小文字で表示したいのです

    • ベストアンサー
    • CGI
  • Enterで指定のテキストボックスにフォーカスを・・・

    Enterを押すと指定のテキストボックスにフォーカスを移動させたいのですがやり方がわかりません・・・。 例えば以下の様なフォームで TB1→TB2→TB3→TB5→TB6 という具合に移動させたいです。 どうか皆さんのお知恵をお貸しください。 <form name = "textbox"> <input type = "text" name="TB0" onFocus="this.blur()"> <input type = "text" name="TB1"> <input type = "text" name="TB2"> <input type = "text" name="TB3"><br> <input type = "text" name="TB4"onFocus="this.blur()"> <input type = "text" name="TB5"> <input type = "text" name="TB6"> </form>

  • mailtoによる送信ができない

    <html> <body> <form action="mailto:●●@●●.ne.jp" method="POST" enctype="text/plain" name="mail"> アドレス<br> <input type="text" size="20"name="アドレス"><br> 名前<br> <input type="text" size="20" name="送信者"><br> 感想<br> <textarea name="感想" rows="2" cols="20"> </textarea> <br><input type="submit" value="送信"> <input type="reset" name="mail" value="リセット"> </form> </body> </html> とやってもOEが立ち上がるだけで、フォームに書いた内容がOEに 表示されません。

  • 複数のsubmitボタンを使い値を送信する

    <form action="/サーブレットへ" method="post"> <input type ="TEXT" NAME="text1"> <input type ="TEXT" NAME="text2"><br> <textarea name="zzzz" cols="100" rows="10"> </textarea> <input type="hidden" name="a1" value="3"> <input type="submit" name="a1" value="作成"> <input type="hidden" name="a1" value="2"> <input type="submit" name="a1" value="修正"> </form> 複数のsubmitを使用してそれぞれ違う、値又は変数を渡し処理をしたいのですが、わかりません。 分かる方がいましたら教えてください。よろしくお願いします。

    • ベストアンサー
    • Java
  • POST からの受け渡しができません・・・

    教えてくださいm(__)m <FORM action="<? echo $PHP_SELF; ?>" method="POST"> :(ここにはif文がはいっています。) : print "お名前:<BR>\n"; print "<input type=\"text\" name=\"handle\" size=\"16\" maxlength=\"30\" value=\"<? echo ($handle); ?>\"><br><br>\n"; print "性別:<BR>\n"; for (reset ($sex_tbl); $key = key ($sex_tbl); next ($sex_tbl)) { echo (" <OPTION value=\"" . $key . "\""); if ($key == $sex) echo (" SELECTED"); echo (">" . $sex_tbl[$key] . "\n"); } print "PRポイント:<BR>\n"; print "<input type=\"text\" name=\"pr\" size=\"16\" maxlength=\"30\" value=\"<? echo ($pr); ?>\"><br><br>\n"; print "<CENTER><input type=\"submit\" value=\"次の人!\"></CENTER><br>\n"; print "<input type=\"hidden\" name=\"page\" value=\"kekkapage\">\n"; print "<input type=\"hidden\" name=\"handle\" value=\"" . $_POST['handle'] . "\">\n"; print "<input type=\"hidden\" name=\"sex\" value=\"" . $_POST['sex'] . "\">\n"; print "<input type=\"hidden\" name=\"pr\" value=\"" . $_POST['pr'] . "\">\n";←80 </FORM> : : ↑なのですが、 「・・・on line 80」エラー表示になりうまくいきません。 の部分が原因と表示にはなっているのですが…。 助けてください。 宜しくお願いしますm(__)m

    • ベストアンサー
    • PHP
  • 特定の場所でEnterが押された時だけjavascriptを呼び出すには?

    <form name="f1"> <input type="text" name="t1" > <input type="text" name="t2" > <input type="text" name="t3" > </form> 上のようにtextが3つあってt3の所でEnterが押されたときだけjavascriptの 関数example()を呼び出すにはどのようにしたらよいのでしょうか?

    • ベストアンサー
    • HTML
  • enterについて2

    <form onsubmit="openWin0003( '2','./test.html')";return false;"> <INPUT TYPE="TEXT" NAME="no" SIZE="10" MAXLENGTH="8"> </form> でenterキーを押した時にfunctionを実行することは 成功したのですが、 このときにwindow.openした時に、すでに開かれているブラウザまで読みこんでしまうのですが、これを回避するにはどうすればいいのでしょうか?

  • INPUTにnameがない場合のsubmit

    <FORM ACTION="login.asp" METHOD="POST"> USER ID:<INPUT TYPE="text" NAME="userid" SIZE="12"><br> パスワード:<INPUT TYPE="password" NAME="pass" SIZE="12"><br> <INPUT TYPE="submit" NAME="btn01" VALUE="ログイン"> <INPUT TYPE="reset" VALUE="クリア"> </FORM> 上記のHTMLに対して、VBAで操作する場合、 データセットした後 objIE.document.all.btn01.Click 'クリックメソッドを実行 で、submit出来るかと思います。 今、VBAで自動ログインしたいサイトが <INPUT TYPE="submit" VALUE="ログイン"> のような感じで、nameの属性がありません。 こういうときは、VBAではどうすればログインできるのでしょうか。 初歩的な質問ですみませんが、わかる方教えてください。

専門家に質問してみよう