admin管理员组文章数量:1134241
This is my HTML
<select name="countries" id="countries" MULTIPLE size="8">
<option value="UK">UK</option>
<option value="US">US</option>
<option value="Canada">Canada</option>
<option value="France">France</option>
<option value="India">India</option>
<option value="China">China</option>
</select>
<br />
<input type="button" id="select_all" name="select_all" value="Select All">
When user click on 'Select All' button, I want all the options in the select box to be selected
$('#select_all').click( function() {
// ?
});
This is my HTML
<select name="countries" id="countries" MULTIPLE size="8">
<option value="UK">UK</option>
<option value="US">US</option>
<option value="Canada">Canada</option>
<option value="France">France</option>
<option value="India">India</option>
<option value="China">China</option>
</select>
<br />
<input type="button" id="select_all" name="select_all" value="Select All">
When user click on 'Select All' button, I want all the options in the select box to be selected
$('#select_all').click( function() {
// ?
});
Share
Improve this question
edited Apr 7, 2020 at 19:57
isherwood
61k16 gold badges120 silver badges168 bronze badges
asked Mar 29, 2012 at 11:43
skosskos
4,1928 gold badges38 silver badges59 bronze badges
1
- I suggest you read this + T.J. Croweder comment – gdoron Commented Mar 29, 2012 at 14:03
10 Answers
Reset to default 201Try this:
$('#select_all').click(function() {
$('#countries option').prop('selected', true);
});
And here's a live demo.
For jQuery versions 1.6+ then
$('#select_all').click( function() {
$('#countries option').prop('selected', true);
});
Or for older versions:
$('#select_all').click( function() {
$('#countries option').attr('selected', 'selected');
});
LIVE DEMO
Give selected
attribute to all options like this
$('#countries option').attr('selected', 'selected');
Usage:
$('#select_all').click( function() {
$('#countries option').attr('selected', 'selected');
});
Update
In case you are using 1.6+, better option would be to use .prop()
instead of .attr()
$('#select_all').click( function() {
$('#countries option').prop('selected', true);
});
try this,
call a method selectAll() onclick and write a function of code as follows
function selectAll(){
$("#id").find("option").each(function(this) {
$(this).attr('selected', 'selected');
});
}
If you are using JQuery 1.9+ then above answers will not work in Firefox.
So here is a code for latest jquery which will work in all browsers.
See live demo
Here is the code
var select_ids = [];
$(document).ready(function(e) {
$('select#myselect option').each(function(index, element) {
select_ids.push($(this).val());
})
});
function selectAll()
{
$('select#myselect').val(select_ids);
}
function deSelectAll()
{
$('select#myselect').val('');
}
Hope this will help you... :)
Working Demo
$('#select_all').click( function() {
$('select#countries > option').prop('selected', 'selected');
});
If you use jQuery older than 1.6:
$('#select_all').click( function() {
$('select#countries > option').attr('selected', 'selected');
});
try
$('#select_all').click( function() {
$('#countries option').each(function(){
$(this).attr('selected', 'selected');
});
});
this will give you more scope in the future to write things like
$('#select_all').click( function() {
$('#countries option').each(function(){
if($(this).attr('something') != 'omit parameter')
{
$(this).attr('selected', 'selected');
}
});
});
Basically allows for you to do a select all EU members or something if required later down the line
I'm able to make it in a native way @ jsfiddle. Hope it will help.
Post improved answer when it work, and help others.
$(function () {
$(".example").multiselect({
checkAllText : 'Select All',
uncheckAllText : 'Deselect All',
selectedText: function(numChecked, numTotal, checkedItems){
return numChecked + ' of ' + numTotal + ' checked';
},
minWidth: 325
});
$(".example").multiselect("checkAll");
});
http://jsfiddle.net/shivasakthi18/25uvnyra/
if you also want to deselect all options once select all option is deselected you can try this: (Select All option's value should be 'all')
var selectAllIsSelected = false;
$('#select').on('change', function(event) {
var vals = $(this).val()
if (selectAllIsSelected == false && vals.indexOf("all")>-1 == true) {
$('.service_continent > option').prop('selected', true);
selectAllIsSelected = true;
$('.service_continent').trigger('change');
}
if(selectAllIsSelected == true && vals.indexOf("all")>-1 == false)
{
$('.service_continent > option').prop('selected', false);
selectAllIsSelected = false;
$('.service_continent').trigger('change');
}
});
This one also can be another solution:
$('#countries').multiselect('selectAll', false)
本文标签: javascriptHow can I select all options of multiselect select box on clickStack Overflow
版权声明:本文标题:javascript - How can I select all options of multi-select select box on click? - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1736821504a1954303.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论