我在选择函数中传递参数的方式是否错误?

时间:2019-05-03 18:17:45

标签: javascript

我想做的是从下拉列表中获取文本。当我将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>


输出应该是用户选择的文本值,例如名称,地址等

1 个答案:

答案 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>