J'ai une instruction de sélection dans laquelle je peux sélectionner une valeur à la fois, j'essaie de créer une case à cocher pour la sélection multiple. Mes valeurs de liste déroulante proviennent du backend. Je ne peux utiliser aucun plugin d'amorçage. Ci-dessous le code, y a-t-il de toute façon pour y parvenir avec peu de modifications du code. Toute aide sera appréciée.
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td id="test">
<select id="student">
<option selected="selected" value="default">select here</option>
</select>
</td>
</tr>
</table>
function selectMultiple(studentList) {
for (var i = 0; i < studentList.length; i++) {
let studentVal = studentList[i];
$("#student").append('<option value="' + studentVal + '">' + studentVal + '</option>');
}
}
//studentlist coming from backend
var studentList = ['A', 'B', 'C'];
selectMultiple(studentList);
4 Réponses :
Essayez ceci Mettez ces détails que vous obtenez du backend, dans un tableau (comme un tableau assosiatif), puis passez-le au frontend. Accédez ensuite aux éléments du tableau au frontend. Ex: ">
Essayez de modifier votre sélection pour ceci:
Vous devriez alors pouvoir maintenir le bouton Ctrl enfoncé et sélectionner plusieurs valeurs
une autre façon d'obtenir des cases à cocher
Vous pouvez simplement utiliser la balise et modifier votre css pour qu'il ressemble à une liste
déroulante , également dans le code ci-dessous, j'ai utilisé . one ("click", function () .. pour qu'il n'y ait pas plusieurs append .
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<table>
<tr>
<td id="test">
<ul id="student">
<li id="s1" selected="selected" value="default">Select here</li>
</ul>
</td>
</tr>
</table>
ul li:hover, ul li:focus {
color:red;
}
li{
list-style: none;
}
$("#s1").one("click",function(){
for (var i = 0; i < studentList.length; i++) {
let studentVal = studentList[i];
$("#student").append('<li value="' + studentVal + '">' +'<input type="checkbox">'+ studentVal + '</li>');
}
});
//studentlist coming from backend
var studentList = ['A', 'B', 'C'];
Voici l'extrait de code pour avoir des cases à cocher dans une liste déroulante.
<div class="multipleSelect">
<div class="selectBox" onclick="showMultipleCheckbox()">
<select>
<option>Select a checkbox</option>
</select>
<div class="selectionBox"></div>
</div>
<div id="multipleCheckbox">
<label for="one">
<input type="checkbox" id="one" />Check box1</label>
<label for="two">
<input type="checkbox" id="two" />Check box2</label>
<label for="three">
<input type="checkbox" id="three" />Check box3</label>
</div>
</div>
<script>
var selectTagOpen = false;
function showMultipleCheckbox() {
var checkboxes = document.getElementById("multipleCheckbox");
if (!selectTagOpen) {
checkboxes.style.display = "block";
selectTagOpen = true;
} else {
checkboxes.style.display = "none";
selectTagOpen = false;
}
}
</script>
.multipleSelect {
width: 130px;
}
.selectBox {
position: relative;
}
.selectBox select {
width: auto;
}
.selectionBox {
position: absolute;
left: 0;
right: 0;
top: 0;
bottom: 0;
}
#multipleCheckbox {
display: none;
border: 1px solid;
}
#multipleCheckbox label {
display: block;
}
#multipleCheckbox label:hover {
background-color: #42ecf5;
}
Où est le code HTML de votre case à cocher?
Modification minimale:
Krishna td with id test est le code HTML
@ user10806781 Krishna fait référence à votre demande de " créer une case à cocher pour la sélection multiple ". Il n'y a pas de "case à cocher pour la sélection multiple" dans votre HTML, juste un
- si vous cherchez à créer une liste déroulante avec des cases à cocher, alors ce n'est pas exactement une seule ligne et vous ' Il vaut mieux utiliser un plugin jquery.liberté, l'utilisation de plusieurs fonctionnera mais cela ne me donnera pas de cases à cocher, comment puis-je obtenir des cases à cocher en utilisant le plugin jquery