2012-03-27 86 views
2

我有这样的形式:jQuery的:当复选框被选中/取消更改下拉列表中选择

<input type="checkbox" value="First" />First 
<input type="checkbox" value="Second" />Second 
<input type="checkbox" value="Third" />Third 

<select name="first-drop"> 
    <option value="---">---</option> 
    <option value="Option1">Option1</option> 
    <option value="Option2">Option2</option> 
</select> 

有(使用JS/jQuery的)我的first-drop值更改为---的方式每当First检查框未选中?

+0

这两个段落有两个完全不同的含义。你想隐藏或改变价值? – gdoron 2012-03-27 09:51:00

+0

更改值。修正了这个问题,对于那个混乱的位置感到抱歉。 – gabmadrid 2012-03-27 09:57:34

+0

也可以。我更新了[答案](http://stackoverflow.com/a/9887036/601179)。 – gdoron 2012-03-27 10:17:15

回答

3
$('input[type="checkbox"][value="First"]').change(function(){ 
    $('select[name="first-drop"]').toggle(); 
});​ 

LIVE DEMO

请注意,我定你的标记:

<input type="checkbox" value="First" checked="checked" >First 
<input type="checkbox" value="Second" />Second 
<input type="checkbox" value="Third" />Third 

<select name="first-drop"> 
    <option value="">---</option> 
    <option value="Option1">Option1</option> 
    <option value="Option2">Option2</option> 
</select>​ 

更新:

你现在想要的是:

$('input[type="checkbox"][value="First"]').change(function() { 
    if (!this.checked) { 
     $('select[name="first-drop"] option:first').prop('selected', 'selected'); 
    } 
}); 

​LIVE DEMO

如果你会给你的DOM元素的ID也可以是这么简单:

$('#first').change(function() { 
    if (!this.checked) 
     $('#nothing').prop('selected', 'selected'); 
}); 

更新DOM:

<input type="checkbox" value="First" id="first" >First 
<input type="checkbox" value="Second">Second 
<input type="checkbox" value="Third">Third 

<select name="first-drop"> 
    <option value="" id="nothing" >---</option> 
    <option value="Option1" >Option1</option> 
    <option value="Option2">Option2</option> 
</select>​ 

LIVE DEMO

+0

谢谢你的标记修复!我的问题更多的是在取消选中复选框时更改下拉列表的选定值,而不是使下拉列表消失。我的措辞可能会产生误导,我会修改它。 – gabmadrid 2012-03-27 09:55:57

+0

@gabmadrid。更新。 – gdoron 2012-03-27 10:12:54

2

我添加了一个ID,以第一个复选框

<input id="first" type="checkbox" value="First">First</input> 
<input type="checkbox" value="Second">Second</input> 
<input type="checkbox" value="Third">Third</input> 

<select name="first-drop"> 
    <option value="">---</option> 
    <option value="Option1">Option1</option> 
    <option value="Option2">$Option2</option> 
</select> 

<script type="text/javascript"> 
    $(function() { 
     $("#first").click(function() { 
      if ($(this)[0].checked == true) { 
       $("[name='first-drop'] option:first").attr("selected", "selected"); 
      } 
     }); 
    });​ 
</script> 

演示:

http://jsfiddle.net/8BtYc/2/

编辑:修正了我的代码,因此它不会如果没有选择第一个复选框切换

相关问题