2011-05-16 141 views
0

DIV我有哪裏用戶必須選擇從下拉菜單中選擇一個值,並基於該值,其餘FO表單元素顯示在軌道的形式。的JavaScript - 隱藏/顯示基於選擇

<div id="A"> 
a 
b 
c 
</div> 

<div id="B"> 
x 
y 
z 
c 
</div> 

<div id="B"> 
w 
a 
q 
c 
</div> 

當用戶從選擇菜單中選擇值A時,顯示ID爲A的div,其餘的div被隱藏。

問題是某些字段在不同的div中重複出現,並且當用戶在div A中爲字段'a'輸入值時,該值將被div B中的空白值覆蓋,儘管div B對視圖隱藏。

我想知道是否有可能在不同的div中具有相同的字段,並且能夠僅存儲顯示的div中的字段值,即使該字段在其他div中也可以找到。

許多許多感謝提供任何建議。

+3

需要看到HTML真的。你是否在每個div的輸入中使用了相同的'name'屬性?這將是問題。 – 2011-05-16 22:36:43

+0

我同意Nick Brunt。而且div是否隱藏是**不重要**,只有名字很重要。此外,具有相同ID的兩個元素不好... – JiminP 2011-05-16 22:41:19

+0

是的,我同意你的兩個。根據選擇列表中的選擇,顯示包含輸入字段的各個div。現在,當用戶在該輸入字段中輸入一個值時,會調用ajax調用,並從該dbase中檢索到的數據顯示在表單上。數據顯示的方式與選擇列表中的每個選擇不同 – tanya 2011-05-16 22:50:33

回答

1

當您隱藏的div,打開所有兒童殘疾人屬性,當你告訴一個div將其刪除。類似這樣的:

var showDiv = function (id) { 
    var all = [document.getElementById('A'), 
       document.getElementById('B'), 
       document.getElementById('C')], 
     cur = document.getElementById(id), 
     inps; 

    for (var i = 0, il = all.length; i < il; i++) { 

     inps = all[i].getElementsByTagName('input'); 

     for (var j = 0, jl = inps.length; j < jl; j++) { 
      inps[j].setAttribute('disabled', 'disabled'); 
     } 

     all[i].style.display = 'none'; 

    } 

    inps = cur.getElementsByTagName('input'); 

    for (j = 0, jl = inps.length; j < jl; j++) { 
     inps[j].removeAttribute('disabled'); 
    } 

    cur.style.display = 'block'; 
}; 
+0

非常感謝您提供的所有建議:) – tanya 2011-05-19 12:16:00

1

爲什麼不給領域稍有不同的值,並檢查其中一個實際上是與一個的onsubmit功能填寫。

您有:

A1 b C1 X Ÿ ž C2 W¯¯ A1 q C2

然後在的onsubmit: IF(A1 !=''){submit a1} else if(a2!=''){submit a2}

對不起,不完全代碼,但它是一個供您從頭開始的地方。

相關問題