2014-10-10 100 views
0

變化selecteds我有這樣的多重選擇

<select id="mysel" name="mysel" multiple="multiple" data-native-menu="false"> 
<option>please choose</option> 
<option value="!" SELECTED>all</option> 
<option value="A">Sel A</option> 
<option value="B">Sel B</option> 
<option value="C">Sel C</option> 
<option value="D">Sel D</option> 
<option value="E">Sel E</option> 
</select> 

我想要做的是:多重選擇 - 根據選項的選擇與jQuery

  • 只要選擇「SEL A」的一個 - > 「SEL E」被選中,然後取消選擇選項「全部」
  • 如果選擇選項「全部」,取消選擇所有其他選項

我試着用$(「#mysel」).change()以及$(「#mysel option」)。click(),但它沒有像預期的那樣工作。

感謝您的提示

的Fabian

+1

您可以設置一個例子(例如jsfiddle ),證明這個問題?也許更詳細地解釋,你已經嘗試了什麼,爲什麼它沒有達到你的期望。 – 2014-10-10 10:02:32

+1

'$(「#mysel」)。change()'應該在這裏工作,您可以使用它來捕獲更改事件,檢查所選項目並取消選擇所需的任何選項。什麼不適合你? – paulitto 2014-10-10 10:27:18

+0

你可以考慮讓一個有兩個選項的radiogroup。首先是所有,其次是A-E的任意組合。因此,如果選擇「全部」,請取消選擇所有其他人。是否選擇了A-E,取消全部選擇。 – 2014-10-10 11:14:40

回答

0

我不知道這是最簡單的方法,但至少它做什麼,我想做的事:

$("#mysel option").click(function() { 
    var str = ""; 
    $("#mysel option:selected").each(function() { 
     str += this.value; 
    }); 
    if (str == "") { 
     $("#mysel option")[1].selected = true; 
    } else if (this.value == "!") { 
     $("#mysel option:selected:not(:first)").each(function() { 
      $(this).removeAttr('selected'); 
     }) 
    } else { 
     $("#mysel option")[1].selected = false; 
    } 
}); 

http://jsfiddle.net/fabs07/rokfzxwd/

Fabian