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()
  });

在准备功能中检查单选按钮的值。

于 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

你应该执行你的 add_more 函数 onDucomentReady 假设你正在使用 jquery:

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

或使用与 document.ready() 等效的纯 javascript

于 2012-07-13T06:38:22.390 回答