###質問内容
サブミットボタンをクリックすると、入力フォームが現れるという流れのことをやってみています。
とりあえずボタン→フォーム出現まではできるのですが、、、
ボタンをクリックしたらフォームは出るけどボタンは消えてくれたほうが、わかりやすいなと思ったのですが、どうもうまく行かないので、アドバイスをお願いいたします。
###コード
HTML
1<form action="" method="POST"> 2<input type="submit" name="test" value="フォーム"> 3</form> 4<?php if(filter_input(INPUT_POST, 'test')) { form(); } ?>
上記が正しい書き方かどうかは、今回は置いておいてください。。。
一応、検索してみたら下記のコードがありました
Javascript
1function disableSubmit(form) { 2var elements = form.elements; 3for (var i = 0; i < elements.length; i++) { 4if (elements[i].type == 'submit') { 5elements[i].disabled = true; 6}}}
これを、<form action="" method="POST" onclick="disableSubmit(this)">
とすると、disabledにはなりましたが、formが現れません。
<form action="" method="POST" onsubmit="disableSubmit(this)">
だと、disabledにもなりませんでした。
###最後に
Javascriptなどは初心者の為、イマイチ理解しきれておりません。。。
たぶん、「クリックしたらdisableにするよ」だけで、サブミットするよになってないから?かなと思ったのですが、それをどのようにするとできるのかがわかっておりません。
初歩的な質問ですが、よろしくお願いいたします。
###追記編集
Javascript
1function noneSubmit() { 2"use strict"; 3var btn_area = document.getElementById('btn_area'); 4btn_area.style.display = "none"; 5}
と書いてみて、、、
HTML
1<form action="" method="POST" onclick="noneSubmit();"> 2<div id="btn_area"> 3<input type="submit" name="test" value="送信"> 4</div> 5</form>
としてみました。
確かにクリック時は消えております。。。が、その後別のformを呼び出す際にリロードしたようになるので、クリックしたことが0となり、再表示されます。
当然と言えば当然なのですが、、、このあたりの解決策はありますでしょうか?
###解決です
HTML
1<form action="" method="POST"> 2<?php if (!isset($_POST['test'])) : ?> 3<input type="submit" name="test" value="送信"> 4<?php endif; ?> 5</form> 6<?php if (isset($_POST['test'])) { // Formを表示(); } ?>
上記のようにJavascriptは使用せず、POSTの有無で表示非表示することができ、submitもできたので、その下の別のFormも表示されました!
ありがとうございました!
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/06/30 11:02
2016/06/30 11:17
2016/06/30 11:20