Javascript 获取.selectedIndex时出现问题,无法在JQuery Mobile framework中使用选择框

Javascript 获取.selectedIndex时出现问题,无法在JQuery Mobile framework中使用选择框,javascript,jquery,html,jquery-mobile,Javascript,Jquery,Html,Jquery Mobile,我有一系列的select Dropbox设置,内容根据前面的选择动态更新。它在系列中工作良好 当我尝试返回顶部并重新开始时,即使我尝试使用 my_select.selectedIndex = 0; 子选择框保持不变。我原以为这是一个Javascript错误,但发现JSFIDLE示例确实有效,但我在JQuery mobile中的代码不起作用——这让我相信这是一个与JQuery mobile相关的问题 您可以在中看到一个JSFIDLE示例 复制的步骤: 从类型中选择“套管” 从OD中选择5 将类型

我有一系列的select Dropbox设置,内容根据前面的选择动态更新。它在系列中工作良好

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

my_select.selectedIndex = 0;
子选择框保持不变。我原以为这是一个Javascript错误,但发现JSFIDLE示例确实有效,但我在JQuery mobile中的代码不起作用——这让我相信这是一个与JQuery mobile相关的问题

您可以在中看到一个JSFIDLE示例

复制的步骤:

  • 从类型中选择“套管”
  • 从OD中选择5
  • 将类型更改为油管
  • JSFIDLE示例的行为与它应该的一样-将子项重置为“-”,而我的“live”JQuery Mobile示例则没有


    想知道为什么吗?

    您在jQuery Mobile背后操纵DOM,但从未告诉jQuery Mobile有任何变化

    更改基础
    后,需要调用:

    刷新更新自定义选择

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

    因此,您需要添加以下内容:

    $('#od').selectmenu('refresh');
    
    在更改处理程序的底部。当然,要刷新的元素取决于您所在的更改处理程序

    演示:

    您的小提琴工作得很好,因为它根本没有使用jQuery Mobile


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

    您在jQuery Mobile背后操作DOM,但从未告诉jQuery Mobile任何更改

    更改基础
    后,需要调用:

    刷新更新自定义选择

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

    因此,您需要添加以下内容:

    $('#od').selectmenu('refresh');
    
    在更改处理程序的底部。当然,要刷新的元素取决于您所在的更改处理程序

    演示:

    您的小提琴工作得很好,因为它根本没有使用jQuery Mobile

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