クリアボタンの動作について

このQ&Aのポイント
  • 画面上で入力された項目を消去するためにクリアボタンを設置しています。しかし、現在JavaScriptでうまく動作しない問題があります。
  • クリアボタンを押すと、通常のテキストボックスの内容は消去され、disabledのテキストボックスの内容はそのまま残ります。また、チェックボックスはchecked=falseになります。
  • 現在のコードでは正しく動作していないため、改良が必要です。改良方法についてのアドバイスをいただけると助かります。
回答を見る
  • ベストアンサー

クリアボタンの動作について

ご存知の方、ご教授くださいm(__)m 現在、画面上で入力された項目を消去するためにクリアボタンを設置しています。 フォーム中の、 ・通常のテキストボックスの内容:消去 ・disabledのテキストボックスの内容:消去せずそのまま ・チェックボックスはchecked=falseにする としたいと考えているのですが、javascriptでうまく動かせていません。今書いているコードは下記のようなものです。 $(document).ready(function () { $('.buttons :button[name=clear]').click(function() { $('.inputs :input:visible').val(''); return false; }); これを改良してうまく動くようにすることは可能でしょうか。 よろしくお願いいたします。

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

  • ベストアンサー
  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.2

こんにちは。 うまくいかないとはどのようになっていますか? 先ほどのサンプルの動作を確認できるURLです。 http://hppg.moe.hm/okwave/qa/q7954963/ Firefox,Chrome,IE8にて動作確認しています。 というか、基本的にjQuery使っていれば大体のブラウザで動きます。 (特殊なことしなければ)

mano31
質問者

補足

素早いレス、ありがとうございます。 いただいたURLのコードだと確かに問題なくいけますね。 No.1の分だと、自環境ではどの項目も消えないという状況になってしまっていました。 (HTMLの書き方が悪かったのだと思います。。) 現状、実際に入れ込む環境では ・チェックボックスのチェックは問題なく消える ・disabledなテキストボックスの内容は消えてしまう という状況です。 ・・・と思っていましたが、 $('.inputs :input:visible').val(''); という余計なスクリプトが入っていたため、disabled分まで消してしまっていたようです。 ということで、無事解決できました! ありがとうございました!!m(__)m

その他の回答 (1)

  • LancerVII
  • ベストアンサー率51% (1060/2054)
回答No.1

こんにちは。 $('button').click ( function() { // input type="text"だけどdisabled="disabled"のものを除いて''をセット(空白にする) $('input[type="text"]').not('[disabled="disabled"]').val ( '' ); // input type="checkbox"のchecked属性を削除(チェックを外す) $('input[type="checkbox"]').removeAttr ( 'checked' ); }); HTML側がどうなってるかわからなかったので勝手に作ってみたのでセレクタは調節してください。 ==== HTML <input type="text" name="n1"> <input type="text" name="n2"> <input type="text" name="n1" value="3" disabled> <hr> <input type="checkbox" value="2"> <input type="checkbox" value="2"> <hr> <button type="button" name="clear">クリア</button>

mano31
質問者

補足

こんにちは。 早速の回答、ありがとうございます。 まずはいただいたサンプルを動作させてみたのですが、うまく動きませんでした。 いただいたサンプルでの想定されているブラウザを教えていただけますか? こちらはIE8、IE9、あとできればChrome、です。 よろしくお願いいたします。m(__)m

関連するQ&A

  • クリアボタンの動作について その2

    ご存知の方、ご教授くださいm(__)m クリアボタンの動作について、の続きです。 1点忘れていました。 現在、画面上で入力された項目を消去するためにクリアボタンを設置しており、 フォーム中の、 ・通常のテキストボックスの内容:消去 ・disabledのテキストボックスの内容:消去せずそのまま ・チェックボックスはchecked=falseにする までは回答者様のおかげで解決できたのですが、 もう1点、 ・プルダウンメニューも初期値にリセットする という点を忘れていました。 対象となるHTMLは以下のようなものです。 <select name="lineCode"> <option value=""></option> <option value="PAA" >PAA</option> <option value="PAB" >PAB</option> <option value="PAC" >PAC</option> </select> 現状のjavascript: $(function () { $('.buttons :button[name=clear]').click(function() { $('input[type="text"]').not('[disabled="disabled"]').val(''); $('input[type="select"]').val(''); $('input[type="checkbox"]').removeAttr ( 'checked' ); return false; }); .... こちらも解決方法を教えていただけると助かります。 よろしくお願いいたします。

  • クリアボタンの動作について その3

    ご存知の方、ご教授くださいm(__)m クリアボタンの動作についてその2、の続きです。 現在、画面上で表示された表項目を消去するために表データクリアボタンを設置しており、 画面中の、表データを削除したいと考えています。 現状のHTMLは以下のようなものです。 <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd"> <html lang="ja"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <meta http-equiv="Content-Script-Type" content="text/javascript"> <meta http-equiv="Content-Style-Type" content="text/css"> <title>test</title> <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1/jquery.min.js"></script> <script type="text/javascript"> $().ready ( function() { $('.buttons :button[name=clear]').click ( function() { alert('come!'); $('input[type="text"]').not('[disabled="disabled"]').val ( '' ); $('input[type="checkbox"]').removeAttr ( 'checked' ); }); $('.buttons :button[name=clear_table]').click ( function() { alert('come2!'); //<tbody>の中身を消すコード }); }); </script> <style type="text/css"> </style> </head> <body id="main"> <form> <input type="text" name="n1"> <input type="text" name="n2"> <input type="text" name="n1" value="3" disabled> <hr> <input type="checkbox" value="2"> <input type="checkbox" value="2"> <hr> <button type="button" name="clear">クリア</button> <button type="button" name="table_clear">表クリア</button> </form> <div class="data_area"> <table id="schedule_head_table" class="data_table" border=1> <thead> <tr> <th width="60">No.</th> <th width="100">品名コード</th> </tr> </thead> <tbody id=tbody> <tr> <td><div class=right-align>1</div></td> <td>item_code</td> </tr> </tbody> </table>   </div> </body> </html> 解決方法を教えていただけると助かります。 もし可能であれば、クリアボタン自体が動作しない理由も教えていただれば、今後の参考にさせていただきます。 よろしくお願いいたします。

  • リセットボタンでクリアできない(初期の状態に戻らない)のですが・・・

    宜しくお願いします。 フォームの入力チェックで、「ある項目(ラジオボタン)を選択した場合、次のテキストボックスを入力不可にする」という動きをjavascriptでさせています。 しかし、フォームのリセットボタンをクリックした際に、選択したラジオボタンはクリアできるのですが、テキストボックスの状態をクリアすることが出来ません。 ちなみに、動きの詳細は以下の通りです。 1.ラジオボタン「ケースA」を選択すると… 2.テキストボックスが入力不可となり、テキストボックスの背景色がグレーになる 3.「ケースB」「ケースC」を選択すると入力可でテキストボックス背景色は赤になる 4.いずれかを選択した状態でリセットボタンをクリックすると… 5.ラジオボタンはリセットされるが、背景色は残ったまま 6.リセットボタンを再度クリックすると、テキストボックスは全てがクリアされた状態(入力可・背景色白)に戻る このような感じです。 現在のソースは以下の通りですが、どのようにしたらよいでしょうか? (javascriptは得手では無いので、本来ならもっと簡略できるのかもしれませんが、ご了承ください。m(__)m) [JAVASCRIPTソース] function DisAble() {  if(document.input.case[0].checked == true ) {   document.input.text1.disabled = true;   document.input.text1.style.backgroundColor='#cccccc';   return false;  } else if ((document.input.case[1].checked == true ) || (document.input.case[2].checked == true )){   document.input.text1.disabled = false;   document.input.text1.style.backgroundColor='#ff0000';   return false;  } else { // リセットボタンを2回クリックするとようやく以下の設定になる。   document.input.text1.disabled = false;   document.input.text1.style.backgroundColor='#ffffff';   return false;  } } [HTMLソース] <body>  <form name="form1">  <!-- ラジオボタン -->   <input type="radio" name="case" value="A" onClick="DisAble()">ケースA(入力不可)   <input type="radio" name="case" value="B" onClick="DisAble()">ケースB(入力可)   <input type="radio" name="case" value="C" onClick="DisAble()">ケースC(入力可)      <!-- テキストボックス -->   <input type="text" name="text1">   <!-- 送信・リセットボタン -->   <input type="submit" value="送信">   <input type="reset" value="リセット" onClick="DisAble()">  </form> </body> 以上です。分かりづらい説明で申し訳ございませんが、どなたか、どうぞお知恵をお願いいたします。

  • チェックボックスのチェックについて

    チェックボックスが2つあります。 一つが選択されたらテキストボックスが入力可能にしてあります。 Aを選択すると、Bのチェックが外れる、反対の場合も同じようにしたいのですが、下記のように書きましたがうまくいきません。 解決方法が分かられる方、教えて下さい。 *********************************************** function Change(){ if(document.myForm.chkB.checked ==true{ document.myForm.TxtA.disabled = true; document.myForm.chkA.checked = false; } else { document.myForm.TxtA.disabled = false; document.myForm.chkA.checked = true; } } ***********************************************

  • jQuery1.7.2でのdisabledの扱い方

    jQueryで質問させてください。 自分は、チェックボックスとテキストエリアを連動させて、 チェックボックスがチェックされると、disabledが設定されていたテキストエリアが入力可能になり、 チェックボックスのチェックが外されるとテキストエリアに入力不可になるようなものを作っていました。 jQuery1.4.4では以下のように書いて動いていました。 しかし、1.7.2にするとどちらも動かなくなりました。 1.7.2の場合はどのように記述すると以下と同じような動きになるのでしょうか? 宜しくお願いします。 $(document).ready(function() { $('#hogecheck').click(function(e) { if($('#hoge').attr('disabled') == true) { $('#hoge').attr('disabled', ''); } else { $('#hoge').attr('disabled', 'disabled'); } }) });

  • テキストフィールドの値に変更があったら

    テキストフィールド(start_date)では、 $("#start_date").datepicker({dateFormat:'yy-mm-dd'}); として日付入力をします。 その日付フィールドに変更があったら、ajaxaで処理をしたいのです。 そこで、jsに $(document).ready(function() { $(".start_date").change(function(){ var d=$(this).val(); var dataString = 'start_date'+ d; $.ajax({ type: "POST", url: "ajax_org.php", data: dataString, cache: false, success: function(html){ $(".org_id").html(html); } }); }); }); と記述し、変更があったらajax_org.phpを読んで、セレクトボックスの内容を変更させようと しているのですが、このajax_org.phpにテキストボックスの内容がPOSTされないのです。 セレクトボックスに変更があった場合には、valの値が、上記の記述でPOSTで読めるのですが、 なにがいけないのでしょうか? ご教授お願いします!!

    • 締切済み
    • PHP
  • 特定のボタンをdisabledする

    こんにちは。早速ですが <input type="button" ~>で、nameを指定し、 Javascriptから特定のボタンのみ、押せないようにしたいのですが、 function btnStop(){   document.forms[0].[name属性でつけた名前].disabled = false; ・ ・ ・ } で動作しません。ちなみにひとつのフォーム内に複数のボタンなどが混在するタイプです。 なにか間違いがあれば教えていただけると嬉しいです・・ よろしくお願いします。

  • (jQuery)同じクラス名のオブジェクトを一斉操

    jQueryで同じクラス名のオブジェクトを一斉操作するにはどうしたら良いでしょうか? 【したいこと】 3つのチェックボックスのいずれかにチェックを入れると disabledである「お問合わせ」と「お申込み」ボタンがクリックできるようにしたいです。 1つでもチェックが入っていなければボタンはdisabledにしたいです。 【現状】 3つのチェックボックスの1番上のclass="foo"のみクリックすると動作します。 ▼【 HTML 】 <input type="checkbox" class="foo"> <input type="checkbox" class="foo"> <input type="checkbox" class="foo"> <input type="submit" class="bar" value="お問合わせ"> <input type="submit" class="bar" value="お申込み"> ▼【 jQuery 】 // アクセス時はボタンは無効にする。 $(document).ready(function(){   $('.bar').attr('disabled', true); }); // チェックボックスクリックアクション $('.foo').click(function() {   $('.bar').each(function() {     if($('.foo').prop('checked') == true) {       $('.bar').attr('disabled', false);     } else {       $('.bar').attr('disabled', true);     }   }); }); ご教授の程どうぞ宜しくお願い致しますm(__)m

  • 結果がfalseでもsubmitしている?

    チェックボックスにチェックが入ったら テキストエリアに入力ができて、その入力チェックをする というスクリプトを書いていたのですが、 一番目のチェックボックスにチェックが入ったら 入力可能というところは出来るのですが 入力チェックで結果がfalseになっているのに submitされてしまいます。 どこか間違っているのでしょうか。 <html> <SCRIPT language="javascript"> <!-- function Yuukou(){ if(document.DOWN.A_CK.checked == true) { document.DOWN.A_SEL.disabled = false; } else{ document.DOWN.A_SEL.disabled = true; } } function check(){ if(document.DOWN.A_CK.checked == true) { if(document.DOWN.A_SEL.value =="") { alert("シリアル番号を入力してください") return false; } (略) } } //--> </SCRIPT> <FORM name="DOWN" action="A.cgi" onSubmit="check()" method="POST"> <INPUT type="checkbox" name="A_CK" id="A_CK" onClick="Yuukou()"> <INPUT size="20" type="text" disabled="disabled" name="A_SEL"> <input type="submit"> </form> </html>

  • radioボタンの値の取得の仕方?

    こんにちは,よろしくお願いします。 ラジオボタンの値でテキストフィールドのような要素をdisabledにしようと考えています。 そこで <input name="AAA" type="radio" id="AAA_0" value="0" checked="checked" onclick="xxx()"/>選択肢A <input name="AAA" type="radio" id="AAA_1" value="1" onclick="xxx()"/>選択肢B とし,javascriptのxxx functionの中では, if(document.getElementById("AAA").value == 0){ document.getElementById("BBB").disabled = true; }else if(document.getElementById("AAA").value == 1){ document.getElementById("BBB").disabled = false; } } としてみたところ,いつも document.getElementById("AAA").value の値が0のままでいくら選択肢Bをクリックしても切り替わりません。 一体何が悪いのでしょうか。教えてください。よろしくお願い申し上げます。