2012-05-28 64 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/