我正在使用多个jquery select2
在我的HTML中
<select class="select2_demo_3 form-control" style="color: #1c84c6" id="selectSubject" name="selectSubject">
<option value="">Select a Subject</option>
<?php
$query= "SELECT * FROM `tblsubject` WHERE `status`='1'";
$found=mysqli_query($con,$query);
while($row = mysqli_fetch_array($found)){
?>
<option value="<?php echo($row['id']);?>"><?php echo($row['subject_name']);?></option>
<?php
}
?>
<select class="select2_demo_3 form-control" id="selectTopic" name="selectTopic">
<option value="">Select a Topic</option>
<?php
$query= "SELECT * FROM `tbltopic` WHERE `status`='1'";
$found=mysqli_query($con,$query);
while($row = mysqli_fetch_array($found)){
?>
<option value="<?php echo($row['id']);?>"><?php echo($row['topic_name']);?></option>
<?php
}
?>
依此类推,然后在我的剧本中
$(document).ready(function(){
$(".select2_demo_3").select2();
});
问题是虽然我在每个选择的id标签中给它,在检查元素时我得到一个不同的id,这是由jquery在内部设置我认为。 screenshot of inspect
你可以看到它显示我的给定id是&#34; selectSubject&#34;但是当我在我的剧本中写作时
<script type="text/javascript">
var questionType=document.getElementById("selectSubject").value;
</script>
我正在
&#34;未捕获的TypeError:无法读取属性&#39;值&#39; of null&#34;错误
我在做错了什么?我可以在javascript中获得select2值吗?或者做正确的方法是什么?当我使用SELECT2的多个数字时,我想通过ID或其他方式选择个人值。
编辑:将getElementById中的id更正为&#34; selectSubject&#34;。
答案 0 :(得分:0)
您收到"Uncaught TypeError: Cannot read property 'value' of null" error
因为您的DOM在加载DOM之前正在运行。因此,当脚本运行时,它无法找到导致document.getElementById("selectSubject")
的元素作为空值。在身体后移动脚本部分将解决您的问题。
<script>
console.log("script before body tag: %o", document.getElementById("test")); // null
</script>
<div id="test">Hello World</div>
<script>
console.log("script afterbody tag: %o", document.getElementById("test")); // <div id="test" ...
</script>