我是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
答案 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)
答案 2 :(得分:3)
sel
是jQuery对象,你不能使用Javascript方法。
使用val()获取值。
sel.val();
如果您想使用Javascript方法,
var sel = $("#selAttivitaSelezionata")[0];
var val = sel.value;
答案 3 :(得分:3)
您不需要两个元素,而只需使用.val()
jQuery函数。
工作示例
$("#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;
答案 4 :(得分:2)
不要在你的&#34;更改&#34;内再次查询DOM。处理程序; jQuery为您提供元素的引用(this
的值):
$("#selAttivitaSelezionata").change(function() {
var sel = $(this);
var val = sel.val();
// ...
});