Search code examples
javascriptjqueryselectservletsjstl

<select multiple> </select> set more values with val() method in jsp page


My jsp page

<script type="application/javascript">
   <c:forEach var="bs" items="${subjectOfBookList}">
        $("#bSubjectU").val(${bs.subjects.id});
    </c:forEach>
</script>


  <select id="bSubjectU" multiple style="height: 150px">
        <option value="0">Select Subjects</option>
        <c:forEach var="sl" items="${subjectList}">
            <option value="${sl.id}">${sl.subjectName}</option>
        </c:forEach>
    </select>

where ${subjectOfBookList} return my servlet. How i set all list items in select(multiple) element. Now i just get last value. I checked all values return, but set last value. Thanks!


Solution

  • You can push value from <c:forEach in js array then use that array to set mutliple value selected inside your dropdown.

    Demo Code :

    var arrys = ["1", "2"]
    $("#bSubjectU").val(arrys);
    //uncomment to use below
    //var arr =[]
    // <c:forEach var="bs" items="${subjectOfBookList}">
    //push that value inside arr
    //arr.push("${bs.subjects.id}")
    //</c:forEach>
    //$("#bSubjectU").val(arr);
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
    <select id="bSubjectU" multiple style="height: 150px">
      <option value="0">Select Subjects</option>
      <option value="1">A</option>
      <option value="2">B</option>
      <option value="3">C</option>
    </select>