未捕获的TypeError:无法读取属性' undefined'未定义的

时间:2014-11-10 11:20:34

标签: javascript typeerror

我对select标签有疑问。我谷歌它并没有找到任何有关我的问题的解决方案。这里是其中一个链接......(Uncaught TypeError: Cannot read property 'value' of undefined).....我在select标签中的onchange事件上有一些功能,这个怎么样..

           <select id="selectBox" onchange="_change();">
                    <?php
                    $i = 1;
                    while ($lastpage >= $i):?>
                    <option><?php echo $i; ?></option>
                        <?php
                        $i++;
                    endwhile;
                    ?>
          </select>

可能的jQuery代码......

   <script type="text/javascript">
     function _change(evt)
        {
            alert(this.options[this.selectedIndex].value);
        };
    </script>

问题是为什么我未定义未定义而是获取未定义的值或属性,以便我可以继续解决该问题... 谢谢任何帮助将不胜感激...

2 个答案:

答案 0 :(得分:1)

您必须将引荐来源元素this传递给您的javascript函数。

代码:

<select id="selectBox" onchange="_change(this);">
    <option value="1">1</option>
    <option value="2">2</option>
    <option value="3">3</option>
</select>

JS:

function _change(el) {
   alert(el.options[el.selectedIndex].value);
};

演示:http://jsfiddle.net/g5hzph1y/

答案 1 :(得分:0)

***SIMPLEST REPRESENTATION:-***    

<!DOCTYPE html>
    <html>
    <body>

    Select a fruit and click the button:
    <select id="mySelect">
      <option value="11">Apple</option>
      <option value="12">Orange</option>
      <option value="13">Pineapple</option>
      <option value="14">Banana</option>
    </select>

    <button type="button" onclick="myFunction()">Display index</button>

    <script>
    function myFunction() {
        var x = document.getElementById("mySelect").selectedIndex;
        var y = document.getElementById("mySelect").options;
        alert("Index: " + y[x].index + " text is " + y[x].text + " and value is " +  y[x].value);
    }
    </script>

    </body>
    </html>