2012-07-13 96 views
2

我正在使用下面的代码使用简单的Javascript切换功能。如何使用Javascript在html源码中添加动态数据

<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皮(即其默认的可见模式)。

我该如何解决这个问题?

+0

为什么不将true或false作为参数传递给add_more()函数?当您单击是时或当您单击是时手动刷新页面时是否刷新页面? – ThdK 2012-07-13 06:37:49

+0

我不明白有什么不对:http://jsfiddle.net/GSg2q/ – ThdK 2012-07-13 06:40:30

+0

我的代码工作正常,我想要的是,使用JavaScript。我在我的html页面上写了任何东西,但是这并不显示在页面的源代码中,我想将这个dada传递到数据库,并且这个div的数据不正确 – 2012-07-13 10:57:28

回答

1

检查文件准备就绪控件的值,并相应地调整div可见性。

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()"> 
+1

如果以这种方式完成,那么浏览器提供的状态受伤。如果由于某些服务器回发导致页面加载的情况,那么这将是一个糟糕的情况。 – bhuvin 2012-07-13 07:00:29

+0

是的我不想要这个解决方案 – 2012-07-13 11:10:30

0

你应该执行你add_more功能onDucomentReady 假设你正在使用jQuery:

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

或使用普通的文档的JavaScript等价的。准备()

0

如果这是要执行没有jquery,应该是这样的情况,因为包括jquery这样的小事情将结束杀:

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

在就绪功能检查单选按钮的值。

相关问题