为什么我可以't获取在select中定义的选项的value属性的值
Why I can't obtain the value of the value attribute of the option defined into a select?
我对JavaScript和jQuery很陌生,在尝试检索与select的所选选项相关的值时遇到了以下问题。
因此,在我的页面中,我有:
<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为"的select对象;selAttivitaSelezionata",然后我尝试通过sel.value获得所选值,然后我将其打印到弹出的警报中
问题是警报为空。使用FireBug调试器,我看到sel变量被正确初始化,但val的变量是未定义的,是sel获得的值。value。
为什么?我错过了什么?如何获取值属性的值(valida或invalida)?
因为你有这个:
var sel = $('#selAttivitaSelezionata');
这使得sel
成为一个jQuery对象。
此:
var val = sel.value;
应该是这样的:
var val = sel.val();
As.val()是用于检索值的jQuery方法。
你可以通过使用$(this)
:来做得更好
$("#selAttivitaSelezionata").change(function() {
var val = $(this).val();
$("#statoProgettoLabel, #selStatoProgetto").hide();
});
以下是您要查找的内容:
var val = sel.val();
以下是jQuery文档的参考资料http://api.jquery.com/val/
您不需要两个元素,只需将其中一个元素与.val()
jQuery函数一起使用即可。
工作示例
$("#selAttivitaSelezionata").change(function() {
var val = $(this).val();
console.log(val);
$("#statoProgettoLabel").hide();
$("#selStatoProgetto").hide();
});
<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>
.val()
-jQuery API文档
sel
是jQuery对象,不能在它上使用Javascript方法。
对其使用val()来获取值。
sel.val();
如果你想使用Javascript方法,
var sel = $("#selAttivitaSelezionata")[0];
var val = sel.value;
不要在"change"处理程序中再次查询DOM;jQuery为您提供了对元素(this
的值)的引用:
$("#selAttivitaSelezionata").change(function() {
var sel = $(this);
var val = sel.val();
// ...
});
相关文章:
- 使用自定义选项从控制台运行JSlint
- 在 magento 中使用多个价格,但在更改自定义选项时不会更新
- Magento自定义选项-清除输入字段问题
- JSON检索中选择框的额外未定义选项
- 在jquery插件中定义选项的正确位置
- Appcelerator 中的自定义选项卡栏 - 如何返回到根窗口
- 自定义选项卡在单击时跳到顶部
- 使用 JavaScript 初始化 bootstrap-markdown 并自定义选项
- 自定义选项更新 Magento 产品图像
- 自定义选项值取决于屏幕尺寸
- 将产品自定义选项值保存到 js 文件
- 如何使用引导组合框创建自定义选项
- 我可以将Javascript代码注入Chrome自定义选项卡吗
- 使用JS逻辑从自定义选项构建URL链接
- 如何将自定义选项添加到ng选项输出中
- 如何创建带有自定义选项输入的选择下拉列表
- Facebook js-sdk添加选项卡对话框,是否有一种方法可以让用户键入自定义选项卡名称
- 如何在Wordpress中自定义选项卡
- 是否可以使用一些自定义选项调用$('form').validationEngine('valid
- Angular Select Dropdown带有一个选项,允许用户添加自定义选项