2012-05-28 101 views
2

我有一個標準<select>..</select>元素與我有一個滑塊創建selectToUISlider() 問題是,當滑塊移動下拉選項不會改變。此外,它會在滑塊移動時在每個元素上設置selected="selected",以便在提交表單時多個值將被POST,從而模擬多選選項。selectToUISlider設置值不正確

我已經花了很多時間試圖達到這個底部,但沒有運氣。有沒有人有任何想法?

回答

1

當試圖達到您提到的類似功能時,我遇到了同樣的問題。

問題是無論何時移動滑塊,它都會保持設置選擇列表的「selected」屬性而不清除先前選擇的項目。在添加新選項之前,我已經添加了一個腳本來清除以前選擇的選項。

查找/搜索jquery腳本文件的行號92(.. ish)的文本。

//control original select menu 
    var currSelect = jQuery('#' + thisHandle.attr('id').split('handle_')[1]); 
    currSelect.find('option').eq(ui.value).attr('selected', 'selected'); 

,並插入兩行之間的代碼...

所以最終代碼應該是這樣的......

//control original select menu 
    var currSelect = jQuery('#' + thisHandle.attr('id').split('handle_')[1]); 
    currSelect.find('option[selected]').removeAttr('selected'); 
    currSelect.find('option').eq(ui.value).attr('selected', 'selected'); 

我希望它能幫助。 隨意問任何進一步的問題。

+0

也許你應該提交錯誤報告? –

+0

是的,我應該和我會做。 – RRR

1

我知道這是相當古老的,但我最近堅持這一點,也許我的解決方案可以幫助某人。在使用更新版本的jQuery(> jQuery 1.6.1)和JQueryUI並嘗試使用selectToUISlider時,我遇到了同樣的問題。

,我發現我的解決方案(使用屬性insted的屬性)剛剛更換的selectToUISlider.js腳本,在第98行

currSelect.find('option').eq(ui.value).attr('selected', 'selected'); 

currSelect.find('option').eq(ui.value).prop('selected', true); 

你可以找到這個答案的「爲什麼」,這幫助我找到了這個解決方案: https://stackoverflow.com/a/5876747/2285806

你也可以閱讀道具()jQuery的API入口找到更多的信息和瀏覽器的向後兼容性閱讀重要提示: http://api.jquery.com/prop/