2

次のコードで単純な Javascript トグル関数を使用しています。

<script>
function add_more(){
if (document.form.more[0].checked==true)
{

document.getElementById('moreTxt').style.display="block";

}

else if (document.form.more[1].checked==true)
{

document.getElementById('moreTxt').style.display="none";
}
}
</script>


do want to enter something more ? 
<form name="form">
<input type="radio" value="yes" name="more" onclick="add_more()" /> Yes
<input type="radio" value="No" name="more" onclick="add_more()" /> No
<div id="moreTxt" style="display:none">
hi you can enter more here 
<textarea rows="3" cols="4">
</textarea>
</div>
</form>

問題は、[はい] をクリックして、何らかの理由でページを更新すると、[はい] ラジオ ボタンがオンのままですが、moreTxt div非表示になります (つまり、デフォルトの表示モード)。

この問題にどのように取り組むべきですか?

4

4 に答える 4

1

ドキュメントの準備ができているコントロールの値を確認し、それに応じて div の可視性を調整します。

于 2012-07-13T06:36:23.320 に答える
0

これがjqueryなしで実行される場合、そのような小さなことのためにjqueryを含めるのはやり過ぎになるので、そうあるべきです:

document.attachEvent("onDOMContentLoaded", function(){
    ready()
  });

ready 関数で、ラジオ ボタンの値を確認します。

于 2012-07-13T06:43:56.443 に答える
0

これにより、ロード時にすべての入力がリセットされます。

<script>
function resetChkBox() {
    var e=document.getElementsByTagName('input');
    var i=0;
    while(i<e.length) {
        if(e[i++].type=='radio') {
            e[i].checked=false;
        }
    }
}
</script>


  <body onload="resetChkBox()">
于 2012-07-13T06:37:41.590 に答える
0

jqueryを使用していると仮定すると、onDucomentReadyのadd_more関数を実行する必要があります。

       $(document).ready(function() {
         add_more(); 
       }
       )

または、document.ready() に相当するプレーンな JavaScript を使用します。

于 2012-07-13T06:38:22.390 に答える