为什么我无法获得定义到选择中的选项的值属性值?

时间:2015-11-03 14:23:50

标签: javascript jquery html html5

我是JavaScript和JQuery的新手,我在尝试检索与所选选项相关的值时遇到以下问题。

所以,在我的页面中我有:

<select id="selAttivitaSelezionata" class="form-control valid" name="selAttivita" aria-invalid="false">
    <option value="valida">Valida Progetto</option>
    <option value="invalida">Rimuovi Validazione</option>
</select>

然后我每次用户在上一个选择中选择一个选项时都会执行以下JQuery代码:

$("#selAttivitaSelezionata").change(function() {
    //alert("TIPOLOGIA PROGETTO CAMBIATA");

    var sel = $("#selAttivitaSelezionata");
    var val = sel.value;
    alert(val);

    $("#statoProgettoLabel").hide();
    $("#selStatoProgetto").hide();
});

所以,正如您所看到的,我首先在DOM中选择选择对象 id =&#34; selAttivitaSelezionata&#34; ,然后我尝试获取通过 sel.value 选择值,然后将其打印到警告弹出窗口

问题是警报为空。使用FireBug调试器,我看到 sel 变量已正确启动,但 val 变量未定义 sel.value获取的值

为什么呢?我错过了什么?如何获取值属性(valida或invalida)的值?

TNX

5 个答案:

答案 0 :(得分:5)

因为你有这个:

var sel = $('#selAttivitaSelezionata');

使sel成为jQuery对象。

此:

var val = sel.value;

应该是这样的:

var val = sel.val();

因为.val()是用于检索值的jQuery方法。

使用$(this)

,您可以做得更好
$("#selAttivitaSelezionata").change(function() {
    var val = $(this).val();
    $("#statoProgettoLabel, #selStatoProgetto").hide();
});

答案 1 :(得分:3)

以下是您正在寻找的内容:

var val = sel.val();

以下是对jQuery文档http://api.jquery.com/val/

的引用

答案 2 :(得分:3)

sel是jQuery对象,你不能使用Javascript方法。

使用val()获取值。

sel.val();

如果您想使用Javascript方法,

var sel = $("#selAttivitaSelezionata")[0];
var val = sel.value;

答案 3 :(得分:3)

您不需要两个元素,而只需使用.val() jQuery函数。

工作示例

&#13;
&#13;
$("#selAttivitaSelezionata").change(function() {
  var val = $(this).val();
  console.log(val);

  $("#statoProgettoLabel").hide();
  $("#selStatoProgetto").hide();
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select id="selAttivitaSelezionata" class="form-control valid" name="selAttivita" aria-invalid="false">
  <option value="valida">Valida Progetto</option>
  <option value="invalida">Rimuovi Validazione</option>
</select>
&#13;
&#13;
&#13;

答案 4 :(得分:2)

不要在你的&#34;更改&#34;内再次查询DOM。处理程序; jQuery为您提供元素的引用(this的值):

$("#selAttivitaSelezionata").change(function() {
  var sel = $(this);
  var val = sel.val();

  // ...
});