• ベストアンサー

<input> タグについて

HTML内で、複数の<input>タグを持つフォームを使ってデータを入力し、それをPHPプログラムに送るものを作っています。 ある<input>タグの入力が終わった後にリターンキーを押すと、まだ他にも入力したいのがあるのに、すぐにPHPプログラムに飛んで行ってしまいますが、これを、submit ボタンを押したときにだけ飛んでいくようにすることは可能でしょうか? もし可能なら、どのようにするのでしょうか? 詳しい方どうぞ教えてください。お願いいたします。

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

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

  • ベストアンサー
  • t_ohta
  • ベストアンサー率38% (5076/13258)
回答No.3

> しかし、またここで質問なのですが、各データ入力用の<input> でデータの種類を区別するための type="text" やtype="number" はどのように指定すればよいのでしょうか? タイプを指定することで入力値の制限が行えます。 ↓こちらが参考になるんじゃないでしょうか。 https://www.tohoho-web.com/html/input.htm > <button> タグの属性を調べてみたら、formmethod やformaction  といった <form> タグそのものに代わるような物が沢山あって、混乱しています。<form> タグを使わずに<button>でフォーム処理を再構築する必要があるのでしょうか? <button>は汎用のボタンを表示するためのタグです。 ボタン押下時の動作はJavaScriptで定義すればいいので、あまり難しく考えなくても大丈夫です。 ボタンのtypeをsubmitにしてしまうと、Enterキーでフォームが送信されてしまうので、<button>自体にフォームとの連携を持たせず、JavaScriptで処理する方が希望されている動作になると思います。

papashiroSooke
質問者

お礼

リターンキーでPHPに飛ばずに、<button>タグとJavaScrioptの関数を使って何とかうまく処理することが出来ました。 ご紹介いただいたHTMLやDOM関係のサイトには、私がまだまだ知らない事が沢山あって、勉強不足を感じました。 どうも色々と有難う御座いました。

その他の回答 (2)

回答No.2

<form action="" id="myform" onsubmit="return false"><!-- ① --> <input type="text" value="" name="test"> <input type="button" id="submit-button" value="送信" onclick="document.forms['myform'].submit()"><!-- ② --> </form> ① FORM内でEnterされた、SUBMITボタンが押下された場合に起動する差し込み処理で「onsubmit」というものがあります。   ここで、falseを返すことで、SUBMITができないように抑止します。 ② 通常のinput[type=submit]ボタンを押下しても、①で抑止してしまっているので何も起きなくなってしまいます。   そこで、それの影響を受けないJavascriptの処理にて、SUBMITを代行して実行する記述を行います。   「onclick」はみたまんま、「クリック時に動作」します。 JSの書き方はいろいろありますが、一番単純に書くと、上記のようになります。HTMLとロジックを分離する場合は、以下のように書くこともできます。 今後、他にもjQueryなどのようなライブラリやフレームワークを使うこともあると思いますので、頭の片隅においておいておくだけで良いと思います。 <script> // BODYの中身が準備できたら実行される document.addEventListener('DOMContentLoaded', function (e){ // FORMタグを取得する const form = document.querySelector('#myform') // フォームがSUBMITされる場合に差し込むイベントを登録する form.addEventListener('submit', function (e){ // ブラウザのデフォルトの挙動を抑止する(ここではSUBMITを行わないということ) e.preventDefault() }) // 送信ボタン押下される場合に差し込むイベントを登録する document.querySelector('#submit-button').addEventListener('click', function (e){ // JavascriptによってSUBMITを実行する form.submit() }) }) </script>

papashiroSooke
質問者

お礼

早速にご回答をいただきまして、有難うございます。 今会社に出てきているので、回答を詳しく読む暇がありませんが、自宅に戻ってからじっくりと研究させて頂きます。 とりあえずお礼を言わせてください。

  • t_ohta
  • ベストアンサー率38% (5076/13258)
回答No.1

submitボタンを <input type="submit"> から <button type="button" onclick="form.submit();">送信</button> に変えるといいと思います。

papashiroSooke
質問者

お礼

早速にご回答をいただき、有難うございます。 <button> を使ってリターンキーを押してもPHPプログラムに飛ばないようにできました。 しかし、またここで質問なのですが、各データ入力用の<input> でデータの種類を区別するための type="text" やtype="number" はどのように指定すればよいのでしょうか? <button> タグの属性を調べてみたら、formmethod やformaction  といった <form> タグそのものに代わるような物が沢山あって、混乱しています。<form> タグを使わずに<button>でフォーム処理を再構築する必要があるのでしょうか? どうかそのあたりを詳しく教えていただけると助かります。

関連するQ&A

  • INPUTタグによるデータ引継ぎについて

    入力フォームから確認画面を経由してメール送信する プログラムを作っているのですがINPUT<type="hidden"に よるデータの受け渡しがうまくいかず困っています。 ~ソース~ <FORM ACTION="send.php4" METHOD="post"> <INPUT TYPE="hidden" NAME="naiyo" VALUE=$temp> </FORM> $tempには改行コードを含む文字列が入っているのですが send.php4の方で変数naiyoを見ると、改行コードの ところでデータが切れてしまっているのです。 INPUTタグの前でstr_replaceを使って改行コードを 変換しても変わりません。 ありふれたプログラムなんですがはまってます・・。 どなたかお知恵をお貸しください・・。

    • ベストアンサー
    • PHP
  • FORMのINPUTタグについて

    FORMタグ内のINPUTタグで例えばボタンを作成した場合。 そのボタンを押すと他のURLへリンクするという動作は出来るのでしょうか? CGIを使わないで、HTMLのみで出来るのでしょうか。? よろしくお願いいたします。

    • ベストアンサー
    • HTML
  • 複数のsubmitによって送信するデータを変える

    HTML内にsubmitボタンが複数あるとします。 通常は、<FORM>タグの中の全てのデータを送信してしまいますが、 FORMタグを2つ用意しないで、 submit Aボタンはこの入力フォームの値を送信。 submit Bボタンはこの入力フォームの値を送信の様にできないものでしょうか?

  • INPUTタグのselectについて

    INPUTタグのselectについて いつもお世話になりますm(__)m <input type="text" name="hoge" onfocus="this.select()"> 上記のようにすると、フォーカスされた時に、入力されている値が選択状態になりますが、これをフォーム上の全てのINPUTとTEXTAREAに適用できるような方法はありませんでしょうか? 既に作成済みのフォーム(HTML)に一つずつ「onfocus="this.select()"」を入れるのは、非常に手間がかかります。 一気にスタイルシート等で設定できればと思い、質問させて頂きました。 ご存じのかた、ご教授頂けますようお願い致しますm(__)m

    • ベストアンサー
    • HTML
  • 【htmlタグ】inputタグの書き方について

    現状は <input type="text">のテキスト入力エリアが存在します。 それを<form>タグで囲い、 <input type="button">のボタン押下にてform内容を送信していますが、 ボタンではなく、<a>タグのように、ハイパーリンクのような見た目にしてform内容を送信したいです。 どのように修正すればよろしいのでしょうか。宜しくお願いします。

    • ベストアンサー
    • HTML
  • HTML?JavaScript?  INPUTタグ内の文字をハイライト

    HTML?JavaScript?  INPUTタグ内の文字をハイライトさせたい 下記画像のように、formタグ中にある、Inputタグ内の文字をそれぞれカラフルにハイライトさせたいのですが、その方法が分かりません。HTMLかJavaScriptを使えばできるのかも分かりません。 どのようにすれば良いかどなたか教えていただけないでしょうか?宜しくお願い致します。 なお、下記のようにやってはみたものの、submitでタグも送信してしまいますし、タグがそのまま表示されてしまい、イメージする様にはなりませんでした。 <form action="~"> <input value="<span style=background-color:#ffff00>Input</span> <span style=background-color:blue>文字</span> <span style=background-color: pink>ハイライト</span>"> <input type=submit> </form>

  • Formタグ内で入力した情報を自動で送信したい

    <form action=xxxxx method=post> <select name="yyyyy"> <option value="zzzzz">zzzzz</option> ~中略~ <input type="SUBMIT" value="送信"> という形でformタグ内で入力したデータを送信するHTMLを書いたのですが、 このデータの送信って、SUBMITを使ったボタンで無いとできないのでしょうか? 特に操作もなく、このHTMLファイルが読み込まれたら、 Formタグ内で入力している値を、actionで指定したURLに 送信したいのですが。 ご教授よろしくお願いします。

  • [html]<input type="file">タグの参照ボタンを画像ボタンにした時のsubmitの方法

    なにから書けばいいのか難しいのですが… とりあえず、先日次のような質問をしました。 【[html] <input type="file">タグの参照ボタンを画像ボタンにしたい。】 http://oshiete1.goo.ne.jp/kotaeru.php3?q=1244273 その中のやり取りにあるように、参照ボタンを画像にすることはできたのですが、実際に参照ボタンを画像にしてからsubmitすることができなくなってしまいました… いろいろ調べてみましたら、どうやら<input type="file">をjavascript等でclickして値を入れると、セキュリティ上submitできないみたいなのです。実際そのフォームがsubmitに対して無反応になります。javascriptで強引にsubmitしようとすると"アクセスが拒否されました"のエラーがでます。 なんかごちゃごちゃになってきた… 今自分が実現したいのは、以下の2つです。 1.<input type="file">の参照ボタンを画像にしたい。 2.1を実現後そのformをsubmitしたい。 どなたか実現している方がいましたら、ご教授ください。 IE6で動けば問題ないです。 すみませんコードは文字制限に引っかかって載せれなかったです…

    • ベストアンサー
    • HTML
  • HTTPステータス 404 - /servlet/Testについて

    はじめまして。Javaの初心者です。 どうしてもわからないことがあります。それは、 最初にJSPページでHTMLフォームにデータを入力して <input type="submit"/>タグでサーブレットに送信し て、サーブレットでHTMLフォームのデータ を使用して処理を行わせてから再び最初のJSPページ にリクエストを転送(forward)すると、サーブレット での処理結果が表示されるのですが、そのあと再び HTMLフォームにデータを入力して <input type="submit"/>タグでサーブレットに送信す ると、「HTTPステータス 404 -/servlet/Test」などと 表示され、サーブレットが利用可能でなくなります。 なぜなのでしょうか?どのようにしたら解決できるの かどうか教えてください。お願いします。

    • ベストアンサー
    • Java
  • HTMLの<form>タグ内の値について

    フォーム上にクリックボタンを2つ表示してそれぞれ違う処理を実行したいと考えて います。HTML<form>タグを2つ作成して1つ目に処理1のプログラム、2つ目の <form>タグに処理2の処理を実行したいと考えています。 <form>処理1</form><form>処理2</form> 処理1にPHPを埋め込みクリッカブルボタンをプログラムで書き込みます。 <?php for($ctr=0;$ctr<MAX;$ctr++){ ?> <input type="radio" name="area" value=<?=$area[$ctr][0]?> onClick="area.value = <?=$area[$ctr][0]?>"><b><?=$area[$iCnt][1] <?php } ?> ※情報が格納されたPHPの連想配列の情報を元にクリッカブルボタンを作成し、  チェックされた情報を保持したいと考えています。 上記の場合、保持したデータを上記の処理1では利用できますが、 処理2の方ではareaにアクセスしてもデータがありません。 これはformが異なるためデータを読むことができないのでしょうか? 別フォーム内で取得したデータを別フォームで参照することはできないのでしょうか? もしかしたら私の質問が意味不明かもしれませんが ご存知の方がいらっしゃいましたら宜しくお願いいたします。

専門家に質問してみよう