2011-05-16 192 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}

对不起,不完全代码,但它是一个供您从头开始的地方。

相关问题