如何在javascript函数中读取html下拉菜单中选定项的值
我有一个html表单,其中包含一个下拉菜单,如下所示如何在javascript函数中读取html下拉菜单中选定项的值,javascript,html,Javascript,Html,我有一个html表单,其中包含一个下拉菜单,如下所示 <form name= "gadget_selector"> <select name= "gadget"> <option value = 0> Something </option> <option value = 1> Something else </option> //etc.. </sele
<form name= "gadget_selector">
<select name= "gadget">
<option value = 0> Something </option>
<option value = 1> Something else </option>
//etc..
</select>
</form>
我该怎么做
var option = document.getElementById('gadget').value;
还将gadget设置为select的id,如下所示:
<select id="gadget" name="gadget">
<option value = 0> Something </option>
<option value = 1> Something else </option>
//etc..
</select>
<script>
export default {
name: 'MyComponent',
data() {
return {
myValueName: 123
};
},
watch: {
myValueName() {
//
// Will log "Value: 123" and "Value: 456" instead of
// "123" and "456".
//
console.log(this.$refs['mySelectRef'].selectedOptions[0].text);
}
}
}
</script>
<template>
<select ref="mySelectRef" v-model="myValueName">
<option :value="123">Value: 123</option>
<option :value="456">Value: 456</option>
</select>
</template>
<style>
</style>
将id分配给选择框小工具:
首先,为标记分配一个id
您可以通过id访问,如下所示:=
<form name= "gadget_selector" >
<select name= "gadget" id='sel'>
<option value = 0> Something </option>
<option value = 1> Something else </option>
//etc..
</select>
</form>
function getvalue(){
if(document.getElementById('sel'))
{
alert(document.getElementById('sel').value);
var option = document.getElementById('sel').value;
}
}
包括一个id属性来选择元素,并按如下操作,我确信我会工作
var obj = document.getElementById("gadget");
alert(obj.value); // returns selected option value (1st method)
var selectedOption = obj.options[obj.selectedIndex]; // returns selected option element
alert(selectedOption.value); // return selected option value (2nd method)
示例:此处表单[0]是从页面顶部到底部从0开始的表单编号
function someFunction(){
var option = window.document.forms[0].gadget.value;
}
老问题,但也许其他人也像我一样来到这里,所以我将添加我的解决方案: 最干净的方法是引用select字段,使用模型支持select,并添加如下观察者:
<select id="gadget" name="gadget">
<option value = 0> Something </option>
<option value = 1> Something else </option>
//etc..
</select>
<script>
export default {
name: 'MyComponent',
data() {
return {
myValueName: 123
};
},
watch: {
myValueName() {
//
// Will log "Value: 123" and "Value: 456" instead of
// "123" and "456".
//
console.log(this.$refs['mySelectRef'].selectedOptions[0].text);
}
}
}
</script>
<template>
<select ref="mySelectRef" v-model="myValueName">
<option :value="123">Value: 123</option>
<option :value="456">Value: 456</option>
</select>
</template>
<style>
</style>
谢谢这正是我需要的!val是香草javascript吗?我认为它属于jQuery。我很确定这不会起作用。val不是任何浏览器的本机函数。你在寻找的是价值,而不是。瓦拉,是的。我的错。使用jquery的次数太多,我试图执行一个测试var option=document.getElementById'gadget'.val;警报选项;还是不行。第一个帖子不太管用either@Zack:我用document.getElementById'gadget'.value检查它是否正常工作。所以在控制台中检查所有html标记或javascript错误。即使尝试使用简单的javascript警报,如果它是否有效。可能是其他有冲突的东西可能是
var obj = document.getElementById("gadget");
alert(obj.value); // returns selected option value (1st method)
var selectedOption = obj.options[obj.selectedIndex]; // returns selected option element
alert(selectedOption.value); // return selected option value (2nd method)
function someFunction(){
var option = window.document.forms[0].gadget.value;
}
<script>
export default {
name: 'MyComponent',
data() {
return {
myValueName: 123
};
},
watch: {
myValueName() {
//
// Will log "Value: 123" and "Value: 456" instead of
// "123" and "456".
//
console.log(this.$refs['mySelectRef'].selectedOptions[0].text);
}
}
}
</script>
<template>
<select ref="mySelectRef" v-model="myValueName">
<option :value="123">Value: 123</option>
<option :value="456">Value: 456</option>
</select>
</template>
<style>
</style>