2012-03-27 83 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/

編輯:修正了我的代碼,因此它不會如果沒有選擇第一個複選框切換

相關問題