Jquery Mobile Select不重置
我正在用Jquery Mobile编写一个网上商店,我想使用选择菜单浏览可用的类别。当用户选择一个类别时,我想导航到相同的页面,但有一些参数添加到了URL中。这是我的选择标记:Jquery Mobile Select不重置
<asp:Repeater id="productCatSelect" runat="server">
<HeaderTemplate>
<select id="productCatSelectMenu" data-native-menu="false" onchange="categoryClick();" class="button" data-theme="a">
<option data-placeholder="true">All Categories</option>
</HeaderTemplate>
<ItemTemplate>
<option value="<%# Eval("NodeID") %>" ><%# Eval("Description")%></option>
</ItemTemplate>
<FooterTemplate>
</select>
</FooterTemplate>
</asp:Repeater>
这里是JavaScript:
function categoryClick() {
var mySelect = $("#productCatSelectMenu");
if (mySelect.val() != '') {
if (mySelect.val() == 0) {
$.mobile.changePage("shop.aspx", {reloadPage: true, transition:"slide"});
} else {
$.mobile.changePage("shop.aspx?c=" + $("#productCatSelectMenu").val() + "&n=" + $('#productCatSelectMenu :selected').text(), {reloadPage: true, transition:"slide"});
}
}
}
时候我已经航行一次,尽量选择从选择其他选项出现我的问题,我的JavaScript仍然retreives以前的值;选择似乎没有重置!但是,当我按F5并手动重新加载页面时,菜单再次运行,直到我使用过一次。
任何人有任何想法,我怎么能解决这个问题?正如你在javascript中看到的,“reloadPage:true”属性不能解决问题。
你将需要重置此个人信息,也许尝试:
$('select#productCatSelectMenu option').attr('selected', false);
或
$('select#productCatSelectMenu option').removeAttr('selected');
或
$('select#productCatSelectMenu').children('option').removeAttr('selected').filter(':nth-child(1)').attr('selected', true);
或
$('select#productCatSelectMenu').attr('selectedIndex', -1);
我也有类似的问题,有一天
您试过$('#productCatSelectMenu').selectmenu('refresh');
?
您可以检查有关refresh
方法in the documentation
这将刷新JQM控制,但没有将selectedIndex – 2011-12-16 15:37:18
如果你正在使用jQuery Mobile的定制选择字段,尝试
$("#select_id").selectmenu('refresh', true)
这将成功重置jQuery mobile提供的选择选项。
如果它可以帮助别人,我也与jQuery手机,并寻找很长时间后如何重置选择我来到这个解决方案基于蒂莫西的答案:`$(“#form_id select”)。selectmenu('refresh ',true);` – kevin 2012-10-25 20:35:14
我不知道为什么JQuery的移动选择工作的方式。除了这里提到的内容之外,以上都不适用于我。我使用的是最新版本 jQuery的1.10.2.min.js jquery.mobile-1.4.2.min.js
https://forum.jquery.com/topic/resetting-select-menu
var myselect = $("select#useOfColor");
myselect[0].selectedIndex = 0;
myselect.selectmenu("refresh");
是的,就像一个魅力。谢谢一堆! – karl 2011-12-20 07:10:48