使用“下拉列表多选复选框”(jquery)创建动态表

Creating dynamic table with "dropdown multiselect checkbox" (jquery)

本文关键字:jquery 创建 动态 下拉列表 复选框 使用      更新时间:2023-09-26

我正在jsp页面中填充一个动态表。我想有一列作为"下拉多选复选框"。要创建我正在使用的"下拉多选复选框"(jquery+bootstrap)。但是只有第一行是用多选复选框创建的,其他行是正常的选择选项。

这是代码:-

<html><head>
<script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<link rel="stylesheet" href="css/bootstrap-multiselect.css"
    type="text/css">
<script type="text/javascript" src="js/bootstrap-multiselect.js"></script>
<script type="text/javascript">
     $(document).ready(function() {
           $("#myselect").multiselect({
            includeSelectAllOption: true
});
});
</script>
</head>
<body>
<Table name="test" border="1">
            <TR bgcolor="#33FFFF">
                <td>ManagementIPAddress</td>
                <td>Application name</td>
            </TR>
            <c:forEach var="resultMap" items="${requestScope.snmpGetResultsMap}">
                <TR>
                    <TD><c:out value="${resultMap.key}" /></TD>
                    <TD><select id="myselect" multiple="multiple">
                            <option value="checkbox-1">checkbox-1</option>
                            <option value="checkbox-2">checkbox-2</option>
                            <option value="checkbox-3">checkbox-3</option>
                            <option value="checkbox-4">checkbox-4</option>
                            <option value="checkbox-5">checkbox-5</option>
                            <option value="checkbox-6">checkbox-6</option>
                    </select><br />
                    <br /></TD>
                </TR>
            </c:forEach>
        </Table>
</body></head></html>

我知道它正在发生,因为选择 id 对于每一行都应该是唯一的,但现在确定如何解决它。

使用公共类。 将类添加到您的选择中,然后您可以使用类选择器 (".class")

.HTML:

<select class="mySelectClass" multiple="multiple">
        <option value="checkbox-1">checkbox-1</option>
        <option value="checkbox-2">checkbox-2</option>
</select>

脚本:

 $(document).ready(function() {
    $(".mySelectClass").multiselect({
        includeSelectAllOption: true
    });
});

尝试以下代码

<html><head>
<script>
<link rel="stylesheet" href="css/bootstrap.min.css">
<script src="js/jquery.min.js"></script>
<script src="js/bootstrap.min.js"></script>
<link rel="stylesheet" href="css/bootstrap-multiselect.css"
    type="text/css">
<script type="text/javascript" src="js/bootstrap-multiselect.js"></script>
<script type="text/javascript">
     $(document).ready(function() {
           $(".yourClass").each(function(){
$(this).multiselect({
            includeSelectAllOption: true
});
});
});
</script>
</head>
<body>
<Table name="test" border="1">
            <TR bgcolor="#33FFFF">
                <td>ManagementIPAddress</td>
                <td>Application name</td>
            </TR>
            <c:forEach var="resultMap" items="${requestScope.snmpGetResultsMap}">
                <TR>
                    <TD><c:out value="${resultMap.key}" /></TD>
                    <TD><select class="yourClass" multiple="multiple">
                            <option value="checkbox-1">checkbox-1</option>
                            <option value="checkbox-2">checkbox-2</option>
                            <option value="checkbox-3">checkbox-3</option>
                            <option value="checkbox-4">checkbox-4</option>
                            <option value="checkbox-5">checkbox-5</option>
                            <option value="checkbox-6">checkbox-6</option>
                    </select><br />
                    <br /></TD>
                </TR>
            </c:forEach>
        </Table>
</body></head></html>