2013-03-30 66 views
1

我正在链式选择菜单上,您可以在这里看到 - http://jsfiddle.net/stocktrader/EhUKJ/。我已将其编码,以便“国家/地区”选择通过显示/隐藏来更改“州/邮编/城市”选项。所有这一切都运作良好。填充链式选择菜单

但我的问题是,这种形式也用于更新每个人的这些信息。当我用当前数据填充表单时,我无法根据国家/地区设置获取正确的显示/隐藏设置。您可以在我预先选择“美国”的当前小提琴中看到一个示例,但“城市/州/邮编”选项不出现。如果你点击不同的国家,然后回来,DO会出现。

我试图写一些JavaScript来改变填充的显示/隐藏设置,通过检索“国家”值,但我根本不知道JavaScript。我尝试了下面的代码,这是在小提琴中,但我怀疑它甚至接近。

var s = document.getElementById('country'); 
var item1 = s.options[s.selectedIndex].value; 
function cty() 
{ 
    if (item1 == 'group1') 
    unhide('.group1_opts'); 
} 
+0

对于未来 - '相应tag'您的JS/jQuery的问题,你会得到一个非常快的响应:) – Emissary

+0

我注意到一个问题是,当我把一个独立的选择框在同一页上,那个其他的选择框也会在我不想要的时候触发这些动作,你可以在这个小提琴中看到 - [link](http://jsfiddle.net/stocktrader/EhUKJ/9/)。有没有办法将触发器链接到一个特定的选择菜单?谢谢 – stocktrader

+0

当然 - 改变你的选择器以反映一个唯一可识别的元素(或集合)。通常你通过匹配一个'#id'或'.class'来实现这一点,但你也可以通过属性来匹配,例如在你的脚本中类似于'$('select [name = xx]')。doSomething()' - \ [[查看文档](http://api.jquery.com/category/selectors/)\] – Emissary

回答

0

当您绑定的功能,任何在jQuery的事件处理程序的 - 简单地调用处理程序进行第二次不带参数将触发它的执行。

例如, $('select').change();将运行您应用的“更改组”功能 - 在这种情况下,将会处理任何“预选”选项。

updated your fiddle