2010-09-29 57 views
0

我有一个选择字段,显示基于选定值的表单的不同元素,我有三个“类”,每个显示字段的必需部分。我目前有选择绑定到一个.click(),它工作正常,除了如果我想加载与预选值的页面,它不会显示所需的部分形式,因为选择字段实际上并没有点击。jQuery通过选择字段显示/隐藏元素

我环顾四周,我没有看到一个事件,可以让我根据选定的值显示信息,但我不是专家,所以也许我只是误解了一些功能。

这里是我的HTML的相关部分:

<select name="class"> 
    <option value="vehicle" selected="selected">vehicle</option> 
    <option value="part">Part</option> 
    <option value="project">Project</option> 
    <option value="vehicle">Vehicle</option> 
</select><br /> 
<etc...> 

而且我目前的jQuery的切换:

$("select option[value='project']").click(function() { 
     $('div.part-show').show().hide(); 
     $('div.both-show').hide().show(); 
     $('div.vehicle-show').hide().show(); 
    }); 

非常感谢!

+1

你可以显示整个脚本和标记吗?说实话,你的代码并不像现在这样有意义。 – Thomas 2010-09-29 20:01:07

回答

1

我有一个类似的问题,我做了什么来得到它的工作是我,我想预选对象上发了一个click事件(或在我的情况下,选择事件)。

$('select option:first').click(); 

这应该激发关闭您的事件和隐藏/立刻显示一切:

所以... jQuery代码中你必须设置你的改变功能后,请执行以下操作。

另一个可行的方法是从显示的某些HTML开始,根据默认选定值的内容进行隐藏(仅将其编码到HTML中)。如果你打算有一个静态的默认选择值(AKA,它不是基于其他用户输入的动态),这将起作用。

1

您应该对select标签使用change()事件。

$("select").change(function() { 
    if ($("select").val() == "project") { 
    $('div.part-show').show().hide(); 
    $('div.both-show').hide().show(); 
    $('div.vehicle-show').hide().show(); 
    } 
});