如何在javascript变量中获取jquery select2选定值[重复]

Posted

技术标签:

【中文标题】如何在javascript变量中获取jquery select2选定值[重复]【英文标题】:how to get jquery select2 selected value in javascript variable [duplicate] 【发布时间】:2018-04-17 00:06:07 【问题描述】:

我正在使用多个 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();
);

问题是虽然我在每个 select 的 id 标签中给出它,但在检查元素时,我得到了一个不同的 id,我认为它是由 jquery 在内部设置的。 screenshot of inspect

如您所见,它显示了我给定的 id,即“selectSubject”,但是当我在我的脚本中编写时

    <script type="text/javascript">
        var questionType=document.getElementById("selectSubject").value;
    </script>

我来了

"Uncaught TypeError: Cannot read property 'value' of null" 错误

我做错了什么?我可以在 javascript 中获取 select2 值吗?或者什么是正确的方法?

当我使用多个 SELECT2 时,我希望通过 ID 或其他方式单独选择值。

已编辑:将 getElementById 中的 id 更正为“selectSubject”。

【问题讨论】:

selectQuestionType id 在哪里,您在第二次选择中将selectTopic 作为 id! @Sanchit Patiyal,抱歉,这是一个愚蠢的错误。我已将其更改为正确的 id “selectSubject”,但仍然收到相同的错误“Uncaught TypeError: Cannot read property 'value' of null” 你是在body之前还是body标签之后写脚本?? @Sanchit Patiyal 非常感谢。我很傻,我在body标签之前调用我的js,在body标签之后调用jquery。现在它工作得很好。非常感谢 【参考方案1】:

您收到"Uncaught TypeError: Cannot read property 'value' of null" error 是因为您的脚本在加载 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>

【讨论】:

以上是关于如何在javascript变量中获取jquery select2选定值[重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 javascript/jquery 从 URL 中删除获取变量和文件名?

JavaScript使用构造函数获取变量的类型名

JavaScript使用构造函数获取变量的类型名

如何在 jQuery 选择器中使用 JavaScript 变量?

使用 Javascript/jquery 如何从选定行中的每个单元格获取值

jQuery对象的javascript变量