2010-09-17 55 views
0

如果單選按鈕2被選中,則將輸入框添加到日期設置中。我如何添加輸入框?如果單選按鈕1被選中,則除了先前選中按鈕2以外,什麼也不做。你能幫我Javascript幫助。添加/刪除表單元素到DOM

感謝

function CheckDateOptions() { 
var o1 = document.getElementById("dateoption1"); 
var o2 = document.getElementById("dateoption2"); 
var eSettings = document.getElementById("datesettings"); 
if(o1.checked) { 
    //Remove o2 children 
} 
else if(o2.checked) { 
    //How do I add an input box? 
} 

}

<input type="radio" id="dateoption1" name="dateoption" value="1" onclick="CheckDateOptions();"> 
<input type="radio" id="dateoption2" name="dateoption" value="2" onclick="CheckDateOptions();"> 

<span id="datesettings">//Add input box here if dateoption2 is checked</span> 

回答

1

您可以使用innerHTML添加輸入字段。

像這樣的東西應該爲你工作

<script type="text/javascript"> 
    function CheckDateOptions() { 
     var o1 = document.getElementById("dateoption1"); 
     var o2 = document.getElementById("dateoption2"); 
     var eSettings = document.getElementById("datesettings"); 
    if(o1.checked) { 
     eSettings.innerHTML = ""; 
    } else if(o2.checked) { 
     eSettings.innerHTML = '<input type="text" name="field" />'; 
    } 
} 
</script> 

<input type="radio" id="dateoption1" name="dateoption" value="1" onclick="CheckDateOptions()"/> 
<input type="radio" id="dateoption2" name="dateoption" value="2" onclick="CheckDateOptions()"/> 

<span id="datesettings"></span> 

Demo

+0

真棒!去raibh maith agat :) – Jonathan 2010-09-17 21:55:34

+0

Táfáilteromhat :) – irishbuzz 2010-09-17 22:00:08

2

最簡單的路線是:

<input type="radio" id="dateoption1" name="dateoption" value="1" ="ToggleDateOptions(true);" /> 
<input type="radio" id="dateoption2" name="dateoption" value="2" ="ToggleDateOptions(false);" /> 

<span id="datesettings"> 
    <input type="text" id="dateSetting" /> 
</span> 

<script> 
    function ToggleDateOptions(oneChecked) { 
if(oneChecked) 
{ 
    $("#dateSetting").hide(); 
} 
else 
{ 
    $("#dateSetting").show(); 
} 
} 
</script> 

或者,如果你不想使用jQuery(這是以上使用)你可以這樣做:

if(oneChecked) 
    { 

     document.getElementById("dateSetting").style.display = 'none'; 
    } 
    else 
    { 
     document.getElementById("dateSetting").style.display = 'inline'; 
    } 
+0

wasnt正是我​​一直在尋找,但我在這裏學到成才了。謝謝! – Jonathan 2010-09-17 21:57:15

+0

真正的問題在這裏,因爲我不確定我自己,但假設這是表單的一部分不會使用'display:none',因爲無論選擇哪個單選按鈕都會提交dateSetting字段? – irishbuzz 2010-09-17 21:58:48

+0

是的它會的。你可以創建/銷燬元素,當你需要時,但這似乎並不是最簡單的路線。奧卡姆剃刀是我試圖遵循的一個原則,說實話,最簡單的答案通常是最好的。 – 2010-09-17 22:19:56