2012-08-29 46 views
0

我會盡量使這個明智的... 使用jQuery multiselect複選框插件。選項是通過AJAX調用動態添加的。當用戶選擇一個項目/選項並關閉選擇框時,該項目將與「刪除」圖標一起添加到UI中。該圖標中動態添加了ID,以便用戶可以從UI中刪除項目,我也希望從關閉的選擇框中取消選中該項目。添加的ID是所選選項的「值」,以便我可以將UI上的項目與選擇框中的選項相關聯。當價值很短時(少於2個字),這很有用。但是,如果該值大於2個單詞,則會出現錯誤:「無法識別的表達式:複選框[值= xxxxx]」。這個錯誤是從jQuery的拋出:jQuery MultiSelect通過索引取消選中,而不是通過val()

Sizzle.error = function(msg) { 
    throw new Error("Syntax error, unrecognized expression: " + msg); 
}; 

比較實際價值的「味精」,它出現在jQuery是後2個字截斷ID,因此不能匹配到任何知道選擇框價值。
好的,所以我決定使用所選項目的「索引」,並將其添加到「刪除」圖標(以及一個標識符),將其與選擇框中的選定選項相關聯。 。我剝標識,只是使用索引我的問題是,我無法取消的事情我已經試過這樣:

$('select#'+cOption).multiselect("widget").find(":checkbox[index="+delVal+"]").each(function() { 
       this.click(); // Remove check from deleted option 

沒有錯誤,只是沒有取消選中

我會發布整個事情,但它是相當大,有點複雜。基本上我只是想通過索引取消選中一個選項而不是值。

+0

是什麼'delVal'?該指數或價值? –

+0

正如前面提到的......「我將標識符去掉,只用索引」。它是一個從0到4的整數(最多5個選擇)。 – user1415445

回答

0

使用

$('select#'+cOption).multiselect("widget").find(":checkbox[index='"+delVal+"']").each(function() { 
       this.click(); }); 

,而不是

$('select#'+cOption).multiselect("widget").find(":checkbox[index="+delVal+"]").each(function() { 
       this.click();