获取.selectedIndex以使用JQuery Mobile框架中的选择框时出现问题

时间:2012-03-17 04:08:54

标签: javascript jquery html5 jquery-mobile

我有一系列选择Dropbox设置,其内容根据前面的选择动态更新。它可以很好地串联选择。

当我尝试回到顶部并重新开始时,即使我尝试使用

重置所有孩子
my_select.selectedIndex = 0;

子选择框保持不变。我以为这是一个Javascript错误,但发现JSFiddle示例实际上有效,但我在JQuery mobile中的代码不起作用 - 让我相信它是一个与JQuery Mobile相关的问题

您可以在http://jsfiddle.net/vinomarky/xfcdF/

看到一个JSFiddle示例

复制步骤:

  1. 从类型
  2. 中选择'Casing'
  3. 从OD
  4. 中选择5
  5. 将类型更改为管道
  6. JSFiddle示例表现得如此 - 将子项重置为“ - ”,而我的“实时”JQuery Mobile示例不是

    关于为什么的任何想法?

1 个答案:

答案 0 :(得分:4)

你正在操纵jQuery Mobile背后的DOM,但从未告诉jQuery Mobile任何事情发生了变化。

更改基础<select>后,您需要致电refresh method

  

刷新更新自定义选择

     

这用于更新自定义选择以反映原生选择元素的值。如果选择中的选项数量与自定义菜单中的项目数量不同,则它将重建自定义菜单。

所以你需要添加这样的东西:

$('#od').selectmenu('refresh');

位于更改处理程序的底部。当然,要刷新的元素取决于您所处的变更处理程序。

演示:http://jsfiddle.net/ambiguous/n3VXe/

你的小提琴工作正常,因为它根本不使用jQuery Mobile。

另外,你不应该在2012年使用onchange属性,你正在加载jQuery,所以你应该使用它来将处理程序绑定到你感兴趣的事件。你可能想要替换你所有的直接使用jQuery进行DOM操作。