我有一个标准<select>..</select>
元素,我有一个由 selectToUISlider() 创建的滑块问题是当滑块移动时,下拉菜单中的选项不会改变。此外selected="selected"
,当滑块移动时,它会在每个元素上设置,以便在提交表单时发布多个值,以模拟多选选项。
我花了很长时间试图弄清楚这一点,但没有运气。有没有人有任何想法?
我有一个标准<select>..</select>
元素,我有一个由 selectToUISlider() 创建的滑块问题是当滑块移动时,下拉菜单中的选项不会改变。此外selected="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');
并在两行之间插入此代码...
currSelect.find('option[selected]').removeAttr('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');
我希望它有所帮助。随时问任何进一步的问题。
我知道这已经很老了,但我最近遇到了这个问题,也许我的解决方案可以帮助某人。在使用更新版本的 jQuery (>jQuery 1.6.1) 和 JQueryUI 并尝试将 selectToUISlider 与它们一起使用时,我遇到了同样的问题。
我发现我的解决方案(使用属性插入的属性)只是在第 98 行的 selectToUISlider.js 脚本中替换
这个
currSelect.find('option').eq(ui.value).attr('selected', 'selected');
为了这
currSelect.find('option').eq(ui.value).prop('selected', true);
您可以在此答案中找到“为什么”,这有助于我找到此解决方案: https ://stackoverflow.com/a/5876747/2285806
您还可以阅读 prop() 的 jQuery API 条目以查找更多信息并阅读有关浏览器向后兼容性的重要说明:http: //api.jquery.com/prop/