- ベストアンサー
オブジェクトの削除の方法
お世話になります。 JavaScriptでオブジェクトの削除は可能でしょうか? <form method="GET" action="hogehoge"> <input type="text" name="test1"> <input type="text" name="test2"> </form> のようなHTMLがあった場合 test2をまったく送りたくないときにjavascriptで 送信しないようにする方法があれば教えていただきたいと思います。 よろしくお願い致します。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
うーん。なぜボタンのバリューを渡す必要が あるのかわかりませんがとりあえず、こんな感じ? hiddenをdisableするより、ボタンのどちらかを おした場合の処理なので、button_valueのvalueに 値をいれた上でsubmitしてやってはどうでしょうか? <script language=javascript> function hogehoge(obj){ obj.form.button_value.value=obj.value; obj.form.submit(); } </script> <form method="GET" action="hogehoge"> <input type="button" name="button1" value="ボタン1" onClick="hogehoge(this);"> <input type="button" name="button2" value="ボタン2" onClick="hogehoge(this);"> <input type="hidden" name="button_value"> </form>
その他の回答 (2)
回答の回答を読んでも何がやりたいのかさっぱりわかりませんでしたが、 「質問の投稿」と「1つめの回答の回答」と「2つめの回答の回答」の主旨がそれぞれ変わってませんか? > test2をまったく送りたくないときにjavascriptで送信しないようにする方法 <form method="GET" action="hogehoge" onsubmit="this.test2.value='';return true;"> ではダメですか? > buttonが押された場合disabledにしたいのですが > 現在そのボタンはtypeがsubmitになっています。 > submitの場合押したボタンのりクエストが渡されると思うのですが > 押されたときにこのボタンをdisabledにし、かつボタンのvalueも送りたいのですがこれって可能なのでしょうか? (何がやりたいのかわかりません。。。) > ボタンの値自体をとりたいわけではなく > ボタンを押されたかどうかがとりたいんですね > 二つのボタンのうちどちらか一つだけ押された方のみリクエストに送りたいのですが <input type="submit">がいくつあっても、送信されるのは1つ、または0(ブラウザ依存。<input type="text">でエンターキーを押した場合など)です。 ---HTML--- <input type="submit" name="button1" value="送信1"> <input type="submit" name="button1" value="送信2"> ---CGI(perl)--- use CGI; my $c=new CGI; print "Content-type: text/html\n\n"; my @btn=$c->param('button1'); print scalar @btn; # '送信1'か'送信2'のどちらかしか表示されません -------------------------------- ANo.1の回答より ---HTML--- > <input type="submit" name="button1" value="ボタン1"> > <input type="submit" name="button2" value="ボタン2"> ---CGI(perl)--- use CGI; my $c=new CGI; if($c->param('button1') eq 'ボタン1'){ # $c->param('button2');の値は''ですが、HTMLの記述上'button2'は'ボタン2'で有ることは明確 }elsif($c->param('button2') eq 'ボタン2'){ # $c->param('button1');の値は''ですが、HTMLの記述上'button1'は'ボタン1'で有ることは明確 } *動作未確認
お礼
前のボタンと同じ名前のhiddenを作り ボタン1が押された場合はボタン2のhiddenをdisabledに ボタン1が押された場合はボタン2のhiddenをdisabledに という風にして対応してみました 有難うございました
- yambejp
- ベストアンサー率51% (3827/7415)
text要素であればdisabledをtrueにすればよいです。 <form method="GET" action="hogehoge" onSubmit="this.test2.disabled=true"> <input type="text" name="test1"> <input type="text" name="test2"> <input type="submit" value="送信"> </form> 条件が複雑ならfunction定義してください
お礼
お世話になります。 なるほどdisabledにすればリクエストはわたらなくなるんですか 本当にやりたいのは buttonが押された場合disabledにしたいのですが 現在そのボタンはtypeがsubmitになっています。 submitの場合押したボタンのりクエストが渡されると思うのですが 押されたときにこのボタンをdisabledにし、かつボタンのvalueも送りたいのですがこれって可能なのでしょうか? <input type="submit" name="button1" value="ボタン1"> <input type="submit" name="button2" value="ボタン2"> リクエスト側ではボタン1が押された場合ボタン2は取得できません。 これに追加でボタン1が押された場合2つともdisabledにしたいわけですが function hogehoge(){ document.form.button1.disabled=true; document.form.button2.disabled=true; document.form.submit(); } <input type="button" name="button1" value="ボタン1" onClick="javascript:hogehoge();"> <input type="button" name="button2" value="ボタン2" onClick="javascript:hogehoge();"> とした場合、ボタンのリクエストは送信されませんでした。 なので、 上のソースに <input type="hidden" name="button1_value" value="button1"> <input type="hidden" name="button2_value" value="button2"> を追加し、 どちらかのボタンが押された場合に逆のhiddenのリクエストを削除したいと思っています。 なんだか解りにくいと思いますが、よろしくお願い致します。
お礼
お世話になります。 ボタンの値自体をとりたいわけではなく ボタンを押されたかどうかがとりたいんですね 二つのボタンのうちどちらか一つだけ押された方のみリクエストに送りたいのですが 両方をdisabledにすると両方送れなくなりますし、 input typeをbuttonにすると2つともhiddenを作らないといけなくなるわけで・・・ 難しいです・・・ input typeはbuttonのままでtextのreadonly的なプロパティとかあれば便利なんですが とりあえず2つのhiddenをdisabledにする方向でやってみます どうもありがとうございました。