Resetオブジェクトを使った画面のクリアについて

このQ&Aのポイント
  • Resetオブジェクトを使用して画面のクリア(初期状態に戻す)の処理を行っていますが、selectメニューが選択できないままになってしまいます。
  • Resetオブジェクトではイベントが発生せず、他の方法で入力制御を行う必要があります。
  • 画面中のradioボタンでselectの入力を制御しているが、Resetで入力された内容をクリアすると、selectメニューが選択できないままになる。
回答を見る
  • ベストアンサー

Resetオブジェクトについて

いつも大変お世話になっております。 早速なのですが、 Resetオブジェクトを使って画面のクリア(初期状態に 戻す)の処理を行っています。 画面中の"radio"ボタンでselectの入力を制御している のですが、Resetで入力された内容をクリアすると、 selectメニューが選択できないままになります。 (selectメニューは"disabled"で入力制御してます) radioのイベントは"onClick"、"onChange"と両方試した のですが、どちらのイベントも発生していない様子です。 そこで質問です。 (1)Resetオブジェクトではイベントは発生しないのでしょうか? (2)イベントが発生しない場合、他に入力制御を行う方法はありのでしょうか? よろしくお願いします。

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

  • ベストアンサー
  • leaz024
  • ベストアンサー率75% (398/526)
回答No.1

リセットボタンを押すと reset イベントが発生しますが、これを受け取るのはそのリセットボタンを有するフォームのみで、そのフォームに属する個々のオブジェクトは感知しません。 ですので、JavaScriptによる「状態」の変化を初期化する関数を作り、FORM の onReset で呼び出すようにします。 function resetFormState() {   // selectのdisabledをfalseにする。 } <FORM ・・・ onReset="resetFormState()">

y-kawamura
質問者

お礼

返信が遅くなり大変失礼しました。 やはり他のオブジェクトのイベントは発生しないのですね。 リセットをする関数を作成する方法で検討します。 ありがとうございました。

関連するQ&A

  • selectで項目を選択した時に発生するイベント?

    こんにちは,よろしくお願いします。 教えて!の質問をする時,投稿カテゴリーを入力しますが,selectオブジェクトの項目を選択した時に,次のメニュー項目が表示されるようなページについて教えてください。 試しに,javascriptのイベントハンドラonchangeやonclickでやってみましたがうまくいきませんでした。 教えて!の投稿カテゴリーについて解説していただくか,または,selectを選択した時に発生するイベントについて教えてください。よろしくお願いします。

  • オブジェクトを指定しても「Nullまたはオブジェクトではありません」となってしまう

    Webページ作成にて、セレクトボックスを選択した時に選択内容によって、 同フォーム内にある特定のラジオボタンを無効にする処理を組んでいます。 セレクトボックスの[onChange]イベントに下記の[selectChange()]が 動くように記述しているのですが、どうしても 「Nullまたはオブジェクトではありません」とエラーとなってしまいます。 オブジェクト名のタイプミスなども含め何度も見直しましたが間違いありませんでした。 ちなみに、この関数と同じ場所に、ロールオーバーイメージをプリロード させる関数も記述しているのですがそちらは問題なく動いています。 (DreamWeaverが生成してくれるものですが・・) 原因として何が考えられるでしょうか。 分かる方お力をお貸し下さい。 //特定のラジオボタンを無効にする関数 function selectChange() { var selectedNum = document.FormName.SelectBox.selectedIndex; if(selectedNum == 1) { document.FormName.RadioButton[0].disabled = false; document.FormName.RadioButton[3].disabled = true; document.FormName.RadioButton[4].disabled = true; } else if(selectedNum >= 2){ document.FormName.RadioButton[0].disabled = true; document.FormName.RadioButton[3].disabled = false; document.FormName.RadioButton[4].disabled = false; } } //セレクトボックスの記述 <select name="SelectBox" onchange="selectChange()"> <option value=""></option> <option value=1>1</option> <option value=2>2</option> <option value=3>3</option> </select>

  • エクセルRangeオブジェクトの使い方

     エクセルで名簿を作ろうとしています。よくあることですが、入力を簡単にするため、入力メニューを作り、一人目を入力したら次の行に行くようにマクロを考えているのですが、その前に最初のセルを選択させようと下記のように記述したところ、コンパイル時に実行時エラー'1004'アプリケーション定義またはオブジェクト定義エラーです。というエラーになります。  また、作成したコマンドボタンから実行しても実行時エラー'1004'RangeクラスのSelectメソッドが失敗しましたというエラーになります。 Rangeオブジェクトの記載の仕方は間違いないと思うのですが....ちなみに書こうとしている意味は、表が、全く登録がない場合、最初B2セルから記載していくように考え、追加登録していくときはB1セル(項目に当たる行)から空白行になるまで改行するように考えました。 記述内容 Sub CommandButton1_Click() Worksheets("名簿").Select If Range("B2").Value = "" Then Range("B2").Select ←エラーになる行です Else Range("B1").Select Selection.End(xlDown).Select ActiveCell.Offset(1, 0).Select End If 名簿登録.Show End Sub

  • プルダウンの制御

    PHPでプログラミングしています。 次のコンセプトがあります。 1.セレクトボックスを3個利用する。 2.3個のセレクトボックスに1個目から順にonChangeを利用して表示内容を変更する(内容はDBから取得) 問題は3つ目のセレクトボックスに表示する内容が無ければdisabled属性を使って(?)選択を不能にしたいです。 ところがJAVASCRIPTを利用してもうまく制御がかかりません。どのようにしたら良いでしょうか?教えてください。

  • 配列宣言に変数を使えるのでしょうか?

    いつもお世話になっております。先日(10/29)も、Javaの項で教えていただき、プログラムを進めていたのですが、配列のところでまた行き詰まってしまいました。どなたか教えていただけないでしょうか。 (データベースは MySQL を使っています) out.println("<form name=\"hiro1\">"); out.println("<input type=\"radio\" name=\"hiro2\" value=\"A\" onClick=\"hiro3\">A    <input type=\"radio\" name=\"hiro2\" value=\"B\" onClick=\"hiro3\">B"); out.println("<select name=\"hiro4\">"); out.println("</select>"); ResultSet rs1=st1.executeQuery("select hiro from hirotable"); While(rs1.next()){ String hirodata=rs1.getString(1); out.println("<input type=\"hidden\" name=\"hiro5\" value="+hirodata+">); 考え方としては、ラジオボタン(hiro2)のところで、A か B を選択(クリック)することによって、イベントを発生させ(ラジオボタンとセレクトメニューの値は直接には関係しません)、データベースから取得した値(変数 hirodata または hiro5)をファンクション(function hiro3)にもってゆき、そこでセレクトメニュー(hiro4)の値(変数 hirodata またはhiro5)を作ってセレクトメニューに入れたいと思うのです。(セレクトメニューの代わりにテキストボックスで試したら値がひとつ入力され、表示されました)セレクトメニューの場合は、配列が必要になると思いますが、ファンクションの上のところで配列の宣言をするときに、ひとつひとつ記述するのではなく、変数(hirodata または hiro5)を使うことは可能でしょうか?

  • クリアボタンの動作について その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; }); .... こちらも解決方法を教えていただけると助かります。 よろしくお願いいたします。

  • セレクトボックスを使用した、フォームのアクティブ・非アクティブの切り替え

    セレクトボックス(A)を使用して、(A)の選択結果により(A)以降をアクティブ・非アクティブに切り替えたいのです。 アクティブ・非アクティブの切り替え自体は正常に動くのですが、一度「送信する」をクリックした後、次の画面に移動し、その後「戻る」をクリックorブラウザの戻るで元のページに戻ると、アクティブ化できていたセレクトボックス(C)が全て非アクティブとなってしまっているのです。 原因は何でしょうか?よろしくお願いいたします。 function setTF() { n = document.mail.Data.selectedIndex; flag = eval(document.mail.Data.options[n].value); document.mail["B"].disabled = flag; document.mail["C"].disabled = flag; } ※以下HTML※ <form action="mail.cgi" method="post" name="mail"> <table> <tr> <th>セレクトボックス(A)</th> <td><select name="Data" onchange="setTF()"> <option value="false">アクティブ</option> <option value="true" selected="selected">非アクティブ</option> </select></td> </tr><tr> <th>テキスト(B)</th> <td><input size="4" type="text" name="B" disabled="disabled" /> 才</td> </tr><tr> <th>セレクトボックス(C)</th> <td><select name="C" disabled="disabled"> <option>選択肢1</option> <option>選択肢2</option> </select></td> </tr><tr> <td colspan="2" class="submit"><input type="submit" value="送信する" /><input type="reset" value="リセット" /></td> </tr> </table> </form>

  • 引数でDOMのエレメントを指定したいのですが。

    javascriptが苦手な者で質問内容にさえ自身が無い質問です。 スケジュールを管理するフォームを作りたく、以下のようなものを書いてトライしています。 ----------------------------------- javascript部 ----------------------------------- function clear_select(day){   elem = "select_hour_" + day;   document.form_name.elem.selectedIndex = "--"; } ----------------------------------- htmlのform部 ----------------------------------- <input id="Bot_Sch_20111001" name="Bot_Sch_20111001" type="button" onClick="clear_select('20111001')" > <select id="select_hour_20111001" name="select_hour_20111001"> <option value="--">--</option> <option value="01">1</option> <option value="02">2</option> ↓ <option value="24">24</option> </select> <input id="Bot_Sch_20111002" name="Bot_Sch_20111002" type="button" onClick="clear_select('20111002')" > <select id="select_hour_20111002" name="select_hour_20111002"> <option value="--">--</option> <option value="01">1</option> <option value="02">2</option> ↓ <option value="24">24</option> </select> 以下30日程セレクターが続きます。 ----------------------------------- 上記関数clear_selectの引数でフォームのエレメントを規定し、そのセレクターの値を書き換える事はできるのでしょうか? 可能ならどのような書き方をすべきなのかご教授いただけるとありがたいです。

  • 画面上再読み込みをさせたいのですが・・・

    プルダウンメニューでセレクトしたら, その画面がかわったということを知らせて次の動作にうつらせたいので、 reloadさせたいのです。 こういうことは可能でしょうか? onChangeを利用したらどうかとは思っているのですが・・・ print "[select name=P5 <\"javascript=onChange:location.reload()\">]" という記述でいいのでしょうか? よろしくお願いします。

    • ベストアンサー
    • Perl
  • VBScriptでHTMLのセレクトボックスで表示されている値に指定したい

    VBScriptでHTMLのセレクトボックスで表示されている値(value)に指定したいと思っています。どのようにすればよいのでしょうか?詳しくは下記参照。 もし、VBSで無理であるのならほかの言語で可能な言語を教えていただきたく思います。 例:”value_1”を指定してVBSで選びたい <select name="select_name" onchange="select_onchange"> <option value="value_1">value_1_1</option> <option value="value_2">value_2_2</option> </select> (注意) 下記のように位置情報で指定するのではなく、valueの値(value_1)や表示されている値(value_1_1)でしたいと思っています。 IEオブジェクト.Document.フォーム名.コンボボックス名.selectedIndex = 0からの番号

専門家に質問してみよう