mfl*_*din 11 html javascript jquery
我有一个select分组option的元素.我需要选择(或取消)所有option以S optgroup的时候option被点击.我还需要能够同时选择多个optgroups.
我希望它的工作方式是:
查看Stack Overflow上的其他答案,我创建了以下内容:
HTML:
<select multiple="multiple" size="10">
<optgroup label="Queen">
<option value="Mercury">Freddie</option>
<option value="May">Brian</option>
<option value="Taylor">Roger</option>
<option value="Deacon">John</option>
</optgroup>
<optgroup label="Pink Floyd">
<option value="Waters">Roger</option>
<option value="Gilmour">David</option>
<option value="Mason">Nick</option>
<option value="Wright">Richard</option>
</optgroup>
</select>
Run Code Online (Sandbox Code Playgroud)
jQuery的:
$('select').click(selectSiblings);
function selectSiblings(ev) {
var clickedOption = $(ev.target);
var siblings = clickedOption.siblings();
if (clickedOption.is(":selected")) {
siblings.attr("selected", "selected");
} else {
siblings.removeAttr("selected");
}
}?
Run Code Online (Sandbox Code Playgroud)
我在这里举了一个例子:http://jsfiddle.net/mflodin/Ndkct/ (可悲的是jsFiddle似乎不再支持IE8了.)
这在Firefox(16.0)中按预期工作,但在IE8中它根本不起作用.从其他答案我发现IE8无法处理click事件optgroup或option,这是我将其绑定到select然后使用的原因$(ev.target).但是在IE8中$(ev.target)仍然指向整个select而不是option点击的那个.如何找出被点击的内容option(或包含内容optgroup)以及是否已选中或取消选中?
另一个意想不到的行为,但相比较小,是在Chrome(20.0)中,取消选择直到鼠标离开时才会发生select.有人知道解决方法吗?
Ram*_*dav -1
根据您的问题选择/取消选择所有选项。您可以尝试以下代码,可能会对您有所帮助。
代码:
JavaScript 代码:
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.5.2/jquery.min.js">
Run Code Online (Sandbox Code Playgroud)
$(function(){
$('#allcheck').click(function(){
var chk=$('#select_option >optgroup > option');
chk.each(function(){
$(this).attr('selected','selected');
});
});
$('#alluncheck').click(function(){
var chk=$('#select_option >optgroup > option');
chk.each(function(){
$(this).removeAttr('selected');
});
});});
Run Code Online (Sandbox Code Playgroud)
HTML 代码:
<select multiple="multiple" size="10" id="select_option" name="option_value[]">
<optgroup label="Queen">
<option value="Mercury">Freddie</option>
<option value="May">Brian</option>
<option value="Taylor">Roger</option>
<option value="Deacon">John</option>
</optgroup>
<optgroup label="Pink Floyd">
<option value="Waters">Roger</option>
<option value="Gilmour">David</option>
<option value="Mason">Nick</option>
<option value="Wright">Richard</option>
</optgroup>
</select>
<br>
<strong>Select <a style="cursor:pointer;" id="allcheck">All</a>
| <a style="cursor:pointer;" id="alluncheck">None</a></strong>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7654 次 |
| 最近记录: |