C'est mon 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">
Lorsque l'utilisateur clique sur le bouton "Sélectionner tout", je souhaite que toutes les options de la zone de sélection soient sélectionnées
$('#select_all').click( function() {
// ?
});
Essaye ça:
$('#select_all').click(function() {
$('#countries option').prop('selected', true);
});
Et voici une démo en direct .
Pour les versions jQuery 1.6+, alors
$('#select_all').click( function() {
$('#countries option').prop('selected', true);
});
Ou pour les anciennes versions:
$('#select_all').click( function() {
$('#countries option').attr('selected', 'selected');
});
essaye ça,
appelez une méthode selectAll () onclick et écrivez une fonction de code comme suit
function selectAll(){
$("#id").find("option").each(function(this) {
$(this).attr('selected', 'selected');
});
}
Donne l'attribut selected
à toutes les options comme celle-ci
$('#countries option').attr('selected', 'selected');
Usage:
$('#select_all').click( function() {
$('#countries option').attr('selected', 'selected');
});
Si vous utilisez 1.6+, la meilleure option serait d’utiliser .prop()
au lieu de .attr()
$('#select_all').click( function() {
$('#countries option').prop('selected', true);
});
Si vous utilisez JQuery 1.9+, les réponses ci-dessus ne fonctionneront pas dans Firefox.
Voici donc un code pour la dernière version de jquery qui fonctionnera dans tous les navigateurs.
Voici le 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('');
}
J'espère que cela vous aidera... :)
$('#select_all').click( function() {
$('select#countries > option').prop('selected', 'selected');
});
Si vous utilisez jQuery plus ancien que 1.6:
$('#select_all').click( function() {
$('select#countries > option').attr('selected', 'selected');
});
Je suis capable de le faire de manière native @ jsfiddle. J'espère que ça va aider.
Publiez une réponse améliorée quand cela fonctionne et aidez les autres.
$(function () {
$(".example").multiselect({
checkAllText : 'Select All',
uncheckAllText : 'Deselect All',
selectedText: function(numChecked, numTotal, checkedItems){
return numChecked + ' of ' + numTotal + ' checked';
},
minWidth: 325
});
$(".example").multiselect("checkAll");
});
essayer
$('#select_all').click( function() {
$('#countries option').each(function(){
$(this).attr('selected', 'selected');
});
});
cela vous donnera plus de place dans le futur pour écrire des choses comme
$('#select_all').click( function() {
$('#countries option').each(function(){
if($(this).attr('something') != 'omit parameter')
{
$(this).attr('selected', 'selected');
}
});
});
En gros, vous permet de sélectionner tous les membres de l'UE ou quelque chose si nécessaire ultérieurement.