作者ckw (要暱稱作啥)
看板Web_Design
標題Re: [問題] 表單問題
時間Thu Jul 6 00:25:43 2006
※ 引述《rushcat (嗯)》之銘言:
: 目前是想做兩個radio 當 radio a 的值為1的時候 radio b 才會跑出來
: 爬了一下文 有找到div的用法@"@
: 但是有點怪怪的XD
[script部分恕刪]
我覺得你的說法怪怪的。
因為兩個radio都是a,但個別的value是固定的。
與其說"radio a的值為1的時候要如何",
不如改為"被點選的那個radio a的值為1時要如何"比較正確。
: <div id="test1" style="display:block" >
: <input type="radio" name="a" value="1" id="aaa" onblur="show(test2)" />
: <input type="radio" name="a" value="2" id="aaa" onblur="show(test2)" />
: </div>
: <div id="test2" style="display:none">
: <input type="radio" name="b" value="1" />
: <input type="radio" name="b" value="2" />
: </div>
: 目前是按a 第二個 b不會出來 按第一個會出來
: 但是再按一次第二個 他還是不會不見XD (有點像繞口令)
: 簡單來說 就是出的來 收不回去...orz
: 請問是哪裡出了錯
: 感激大家!!~
以下是舉例:
<input type="radio" name="a" value="1" onclick="show(this)"/>
<input type="radio" name="a" value="2" onclick="show(this)"/>
function show(obj){
if (obj.value == "1"){
//value為1的radio被點選→顯示test2
}
else {
//value為2的radio被點選→隱藏test2
}
}
你也可以把obj.type,obj.value,obj.name這些,
用alert丟出來看,就像alert(obj.type);這樣,看看內容是什麼。
我覺得這種寫法很好用就是 XD
忘了補充一點,寫多個同樣的id,在其他瀏覽器會怎樣我不清楚,
但是在IE上面並不會出錯。只是document.getElementById抓到的,
一定會是第一個id,抓不到後面的。所以原PO抓到的aaa,永遠都是
value為1的aaa,自然不會有2的情形出現。
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 61.229.7.173
※ 編輯: ckw 來自: 61.229.7.173 (07/06 00:37)
推 rushcat:sorry...XDD 因為最近才剛開始接觸JS的東西 完全沒有概念 07/06 00:41
→ rushcat:至於最前面的那段 因為我把radio看成是一個單選元件 07/06 00:43
→ rushcat:所以認定他們是一組的 才會有這樣的說法...XD 07/06 00:43
推 ckw:javascript要debug比較麻煩,若一直找不到,就要alert 07/06 00:44
→ ckw:以你的為例,為何一直跑不進else呢? 07/06 00:45
→ ckw:那就把obj.value丟出來看,就會發現兇手是他了 07/06 00:45
→ ckw:至於radio本來就是單選元件啊,所以name一定要相同 07/06 00:46
→ ckw:不同的話會變成好幾個都被點選 XDD 07/06 00:47
推 rushcat:所以我才會說出"radio a的值為1"的這種說法...XD 07/06 00:48
→ elan:ckw想說的是雖然name都是a 但實際上是個別的element 07/06 12:18
→ elan:乾脆改成"值為1的radio a"好了 07/06 12:20
推 elan:ckw兄您就別抓語病了 中文的邏輯結構本來就比較鬆散 07/06 12:22
→ ckw:我只是想表達若想法錯了,code就有可能寫錯這樣啦:P 07/06 12:54
推 rushcat:了解!!! 上了很棒的一課:p 07/06 13:12