- 締切済み
javascriptでボタンが押下されたか調べたい
javascriptが苦手なプログラマをしているOLです。 確認、更新ボタンとあって、確認ボタンを押下されないで更新ボタンを押下された場合にエラーとしたいのですが、どのようにしたら宜しいでしょうか? すみませんが宜しくお願い致します。
- みんなの回答 (8)
- 専門家の回答
みんなの回答
- kokorone
- ベストアンサー率38% (417/1093)
#3です。 仕様とは異なるのですが、disabledにすると、更新ボタンが 押せなくなるのです。
- NTJ
- ベストアンサー率44% (46/103)
もっと単純に・・・・ <SCRIPT> var kakunin=false; </SCRIPT> <FORM ・・・ onsubmit="return false;"> <INPUT type=button value="確認" onclick="kakunin=true;"> <INPUT type=button value="更新" onclick="if(kakunin) this.form.submit(); else alert('確認してよ~');" > </FORM> これじゃダメなの? なぜ、「確認」のタイミングでJavaへSubmitするのかよくわからないです。 もし、「どうしても確認をサーバー側に記録したい」のなら、確認ボタン押下後は、別の登録画面を出力したほうが宜しいです。 hiddenの中身なんぞは、ちょっとPCに詳しければ、自在に変更可能なので・・・
(1)確認ボタンを押したときに、JavaScriptでhiddenの項目などに値を設定してsubmitする。 (2)サーバーで受け取ったhiddenの項目をJSPのhiddenに値として設定する。 (3)更新ボタンを押したときに、そのhiddenの項目の値で確認を押されたかどうかを判定する。 [JSP] -- JavaScript -- // 確認ボタン function exec_check(){ document.form1.confirmFlg.value="1"; document.form1.mode.value=1; document.form1.submit(); } // 更新ボタン function exec_insert(){ if(document.form1.confirmFlg.value!="1"){ alert("確認ボタンが押されてません。"); return false; } -- Form -- <!-- 確認押されたかどうかフラグ-- > <input type="hidden" name="confirmFlg" value='<%= request.getParameter("confirmFlg")' />
- asahina02
- ベストアンサー率47% (95/202)
#1です >確認済みというフラグを出力してやるとは、画面側の方で値を渡すと言うことでしょうか? 簡単に言うと var kakunin = true; という行を確認のプログラムで出力する。 > JavaScriptで確認ボタンが押下されたらのチェックの何か関数みたいなのってありますでしょうか? 一度他の画面に渡ってしまうので、その前の画面でどのような操作(確認ボタン押下)が行われたかは JAVAを経由して何かしら変数なり渡してもらうしかないのではないでしょうか。 ちなみに > disabledを使うと確認ボタンを押されず、更新ボタンを押された場合にエラーメッセージなのどは出力することは出来るのでしょうか? disableなので、確認を押さずに更新を押すことは出来ません。 で、確認を押したらdisableを解除してやれば良いのです。 ただし、この場合も一度Javaに行ってしまうので同じことではないです?
<script type="text/javascript"> function Subm(){ var val=document.forms['f1'].elements['el0'].value; if(val!=1) alert('Push Confirm first,plz'); else // do something } function Conf(){ val=1; // do something } </script> <form name="f1"> <input type="hidden" name="el0" value="0"> <input type="button" name="el1" onclick="Conf()" value="Confirm"> <input type="button" name="el2" onclick="Subm()" value="Submit"> </form>
- kokorone
- ベストアンサー率38% (417/1093)
確認ボタンが押されるまで、更新ボタンをdisabledにしておく というのはいかがでしょうか? OnClickでdisabledをFalseにすれば、ボタンは有効になります。
- asahina02
- ベストアンサー率47% (95/202)
#1です kasumi4050さんの書かれたソースだと、確認押下時にsubmitされてますね。 この場合、フラグは当然リセットされてしまいますので・・・ submitした先(cgiでしょうか?)で確認済みというフラグを出力などするようにするようにすれば良いのではないでしょうか。
お礼
submitした先はjavaです。 確認済みというフラグを出力してやるとは、画面側の方で値を渡すと言うことでしょうか? JavaScriptで確認ボタンが押下されたらのチェックの何か関数みたいなのってありますでしょうか?
- asahina02
- ベストアンサー率47% (95/202)
単純にフラグを用意しておいて確認ボタン押下時にオンにして、 更新ボタン押下時にはそれをチェックすれば良いかと。 var 確認フラグ = false; click_確認() { 確認フラグ = true; } click_更新() { return( 確認フラグ ); }
お礼
ご回答ありがとうございます。 フラグを持たせてやってみたのですが、私のやり方が悪いのか。。。確認ボタン押下して、更新ボタン押下時のフラグの値が特に変わりません。 なのでチェックが出来ません><; 本当にすみませんが、別の方法かもっと詳しく教えていただけるとありがたいです。 例 var kakunin = false; //確認ボタン function exec_check(){ kakunin = true; document.form1.mode.value=1; document.form1.submit(); } //登録ボタン function exec_insert(){ 確認ボタン押下後に登録ボタンを押下して、 alert()でフラグの値を出力してみると ここでkakuninフラグの値がfalseです。 document.form1.mode.value=2; document.form1.submit(); }
お礼
disabledを使うと確認ボタンを押されず、更新ボタンを押された場合にエラーメッセージなのどは出力することは出来るのでしょうか? ほんとっ初心者ですみません。。。