我在页面上有<select>
,在某些情况下我需要重置用户选择的值。我知道如何在普通的选择元素上做到这一点,但我使用jQuery Mobile和常用的方法不起作用。我甚至尝试过在网上找到的其他一些方法,但我一直都会遇到错误或者什么也得不到。
有什么建议吗?
答案 0 :(得分:1)
重置一个已经被jQuery Mobile(jQM从现在开始)接管的选择有一些问题,因为它做了一件很糟糕的工作。
首先,您需要正确的方式来访问它。 当你在标记中声明一个select时,在运行时jQM将它包装成一个div(在另一个div中,但只是忽略它)并以这种方式将一个span预备到select:
<div>
<span class="a_class"></span>
<select id="an_id" class="a_class">
</select>
</div>
问题在于,jQM最好是按类使用而不是ID(因为它甚至会使它们变得非常混乱),所以如果你按照jQM的方式做事......你最终会选择跨度和在它上面调用函数:这不仅不会重置组合,而且还会给你一个很好的例外。
解决方案:
$('a_class').filter('select')
$('a_class')[1]
第一个在jQM的上下文中存在风险,第三个依赖于选择器将始终首先选择范围然后选择(并且底层结构将始终如此)的事实。老实说,我更喜欢第二种方法,因为我觉得它更安全。
一旦找到了选择的方法,就可以取消选择它所选择的选项,但是两种更明显的方法不起作用:
<强>解决方案强>
您需要分两步完成:首先,删除HTML选择(按类访问);然后,请求jQM的选择与HMTL的一个选择:
$('.a_class').filter('select')[0].selectedIndex = -1;
$('.a_class').filter('select').selectmenu('refresh');