这是我的问题:我使用Jquery mobile来设置一些表单元素的样式。其中一个表单元素是多选菜单。我希望这个选择菜单有这种行为http://jsfiddle.net/LynCV/(这个jsfiddle示例不是我的,我在互联网上找到它)。我可以在本机选择菜单样式上实现此行为,但它不适用于自定义菜单样式。
这里的代码不符合我的要求:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>select-deselect all</title>
<link rel="stylesheet" href="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.css" />
<script src="http://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="http://code.jquery.com/mobile/1.3.1/jquery.mobile-1.3.1.min.js"></script>
/* this jquery script is from the jsfiddle and it is working on native styling but not on a custom styling.*/
<script>
$(document).ready(function(){
$('select').change(function(){
if (this.selectedIndex == 0){
$('option:gt(0)', this).prop('selected',false);
}else{
$('option:first', this).prop('selected',false);
}
});
});
</script>
</head>
<body>
<label for="selectBox">Choose one or more</label>
<select id="selectBox" multiple="multiple" data-native-menu="false">//select element in note a native menu but custom you can see it by data-native-menu="false"
<option value="all">all</option>
<option value="one">one</option>
<option value="tow">tow</option>
<option value="three">three</option>
</select>
</body>
</html>
我想要的是:当选择“ALL”选项取消选择所有其他选项时,如果不取消选择“ALL”选项,则不允许选择任何其他选项。取消选择“全部”选项时,允许选择一个或多个选项。
edit1:阅读jquery移动API。我在这里播种http://api.jquerymobile.com/select/#method-refresh以实现我想要的东西我必须使用refresh()方法。但我无法理解如何使用它。
edit2:我的问题在这里可能被视为重复,但我搜索了答案,我无法理解如何使用我找到的解决方案来解决我的问题。所以我要问我问题的具体答案。
edit2:你可以看到我是所有这一切的初学者。
谢谢你的时间和可能的答案。请尽可能提供一些代码示例。谢谢!答案 0 :(得分:1)
在您的情况下,只需致电
$("#selectBox").selectmenu("refresh");
更改“selected”属性后。
$(document).ready(function(){
$('select').change(function(){
if (this.selectedIndex == 0){
$('option:gt(0)', this).prop('selected',false);
}else{
$('option:first', this).prop('selected',false);
}
$("#selectBox").selectmenu("refresh");
});
});