我想做的是从下拉列表中获取文本。当我将this
传递给函数时,它给出一个错误,指出“无法读取未定义的属性'选项'”中的选项,因此想知道我传递的值是否正确
<form>
<select name="hello" onchange="selection(this);">
<option value ="1">name</option>
<option value="2">address</option>
<option value="3">street</option>
<option value="4">city</option>
</select>
</form>
<script type="text/javascript">
function selection(textValue){
console.log(textValue.hello);
var selectedvalue = selectedValue(textValue.hello);
console.log("selectedvalue");
}
function selectedValue(newname){
return newname.options[newname.selectedIndex].text;
}
</script>
输出应该是用户选择的文本值,例如名称,地址等
答案 0 :(得分:1)
为什么发生错误,请参见下面的代码注释。
function selection(textValue){
//console.log(textValue.hello);
// pass the object to selectedValue, not the string
var selectedvalue = selectedValue(textValue);
// remove quotes around selectedvalue
console.log(selectedvalue);
}
function selectedValue(newname){
return newname.options[newname.selectedIndex].text;
}
<select id="hello" name="hello" onchange="selection(this);">
<option value ="1">name</option>
<option value="2">address</option>
<option value="3">street</option>
<option value="4">city</option>
</select>