Это мой 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">
Когда пользователь нажимает кнопку "Выбрать все", я хочу, чтобы все опции в окне выбора были выбраны
$('#select_all').click( function() {
// ?
});
Попробуйте следующее:
$('#select_all').click(function() {
$('#countries option').prop('selected', true);
});
И здесь живая демонстрация.
prop('selected', 'selected')
?
Для jQuery версий 1.6+, затем
$('#select_all').click( function() {
$('#countries option').prop('selected', true);
});
Или для более старых версий:
$('#select_all').click( function() {
$('#countries option').attr('selected', 'selected');
});
selected="true"
- недопустимый xhtml, возможно, было бы лучше использовать selected="selected"
$("input").prop("checked", true);
попробуйте это,
вызовите метод selectAll() onclick и напишите функцию кода следующим образом
function selectAll(){
$("#id").find("option").each(function(this) {
$(this).attr('selected', 'selected');
});
}
Присвойте атрибуту selected
всем параметрам, таким как
$('#countries option').attr('selected', 'selected');
Использование:
$('#select_all').click( function() {
$('#countries option').attr('selected', 'selected');
});
Если вы используете 1.6+, лучшим вариантом будет использование .prop()
вместо .attr()
$('#select_all').click( function() {
$('#countries option').prop('selected', true);
});
.prop
а не attr
для подобных вещей.
Если вы используете JQuery 1.9+, то выше ответы не будут работать в Firefox.
Итак, вот код для последнего jquery, который будет работать во всех браузерах.
Смотрите живая демонстрация
Вот код
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('');
}
Надеюсь, это поможет вам...:)
Рабочий демонстрационный пример
$('#select_all').click( function() {
$('select#countries > option').prop('selected', 'selected');
});
Если вы используете jQuery старше 1.6:
$('#select_all').click( function() {
$('select#countries > option').attr('selected', 'selected');
});
Я могу сделать это на родном пути @jsfiddle. Надеюсь, это поможет.
Опубликуйте улучшенный ответ, когда он работает, и помогите другим.
$(function () {
$(".example").multiselect({
checkAllText : 'Select All',
uncheckAllText : 'Deselect All',
selectedText: function(numChecked, numTotal, checkedItems){
return numChecked + ' of ' + numTotal + ' checked';
},
minWidth: 325
});
$(".example").multiselect("checkAll");
});
попробовать
$('#select_all').click( function() {
$('#countries option').each(function(){
$(this).attr('selected', 'selected');
});
});
это даст вам больше возможностей в будущем для написания таких вещей, как
$('#select_all').click( function() {
$('#countries option').each(function(){
if($(this).attr('something') != 'omit parameter')
{
$(this).attr('selected', 'selected');
}
});
});
В принципе позволяет вам выбирать всех членов ЕС или что-то в случае необходимости позже по линии
.each()
?