2012-07-13 77 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() 
    }); 

在就緒功能檢查單選按鈕的值。

相關問題