• ベストアンサー

PHP リセットボタンをクリックしたら一部リセット

メールフォームとかで、リセットボタンをクリックすると全ての値がリセットしてしまうのですが、全部ではなく、一部だけリセットしないといったものは可能でしょうか? <input size="20" type="date" name="日付" /> /* リセットボタン */ <input type="reset" value="リセット" />

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

  • ベストアンサー
  • asciiz
  • ベストアンサー率70% (6871/9771)
回答No.2

type=reset ボタンは、フォーム全体をリセットします。それは過去から引き継ぐ互換性を保つため、変えられません。 なので、普通にボタンを作って、個別にクリアする動作を書けば良いでしょう。 (PHPじゃなくてJavaScriptですけど) 例) <input type="button" value="日付クリア" onClick="document.form1.date.value='';"> あ、上記を実行するのに、<form name="form1" ~> と、名前がついている必要があります。 ※プロポーショナルフォントだと見づらいですが、onclick=""の中でヌルストリングを書くのに、シングルクォートを使ってます。 1文字ずつくくると、value 以降はこう書いてます。 ↓ (前略)value = 「’」「’」「;」「”」 クリア項目が複数あったり、複雑な処理をしたい場合には、スクリプト部をHEAD内に書き、ボタンでは関数呼び出しだけにした方がすっきりすると思います。 (headタグ内) <script type="text/javascript"> function clear_date() { document.form1.date.value = ""; /* 他の項目クリアや処理など */ } </script> (body - form部) <input type="button" value="日付クリア" onClick="clear_date()"> -- しまった別関数にするならちゃんとPHPでの書き方がある気が(汗

nkmyr
質問者

お礼

ありがとうございます。 おかげさまでできました。

すると、全ての回答が全文表示されます。

その他の回答 (1)

回答No.1

FORM自体を2個に分けてしまえばOKです。 「それじゃ、片方しか送られないのでは?」 その通りです。 なので、送信ボタンをJavaScriptで制御して、 プログラム内で、両方のFORM構成物をまとめて送り出せばOK 「だったら、JavaScriptでリセットする項目だけを消すほうが楽なのでは?」 これも、その通りです。 つまりやり方は、たくさんあり、どれが正しいとも言えないというのが、 回答です。 ですが、上に書いた通り、簡単なスクリプトを混ぜることで、 どのようにもできるというのが今回の回答となります。

nkmyr
質問者

お礼

ありがとうございます。 PHPではなく、JavaScriptでしたか。

すると、全ての回答が全文表示されます。

関連するQ&A