【发布时间】:2021-02-03 10:03:50
【问题描述】:
大家好,这是我的动态表单,我在此表单中使用 select2 搜索选项,但它不起作用
这个头
<script src="jquery-3.3.1.min.js" type="text/javascript"></script>
<!-- Select2 JS -->
<script src="select2/dist/js/select2.min.js" type="text/javascript"></script>
这是我的动态 html 表单,由于堆栈溢出限制,我无法编写完整代码
html += `<td><select type="text" name="head[]" class="form-control inst_amount"><option value="">Select Name</option><?php $sql=mysqli_query($con,"SELECT * FROM bank_details order by name");
while($row=mysqli_fetch_array($sql))
{?><option value="<?php echo htmlentities($row['id']);?>"><?php echo htmlentities($row['Name']);?></option><?php }?></select></td>`;
这是 select2 库
<!-- Select2 JS -->
<script src="select2/dist/js/select2.min.js" type="text/javascript"></script>
<script type="text/javascript">
$(document).ready(function(){
$('.inst_amount').select2();
});
</script>
【问题讨论】:
-
您在控制台中遇到的任何错误?
-
@mehmoodkhan 没有错误只是正常的选择选项即将到来
-
假设“动态表单”是指它是通过 AJAX 加载的,那么您需要在 AJAX 回调中创建的选择元素上调用
select2() -
就在
$('.inst_amount').select2();之前添加console.log($('.inst_amount').length)- 输出是什么?如果它是 0/零,那么这就是您的问题,在您拨打电话时该元素不存在。术语“动态 html”最近似乎被滥用(仅表示服务器端 html) - 所以请确认您是通过 ajax 加载表单 -
在这种情况下,问题就像我在之前的评论中描述的那样。有关如何解决该问题的示例,请参阅副本。
标签: javascript jquery ajax