开发者问题收集

未捕获的类型错误:无法读取未定义的属性“undefined”

2014-11-10
10183

我遇到了 select 标签的问题。我在 Google 上搜索了一下,没有找到任何关于我的问题的解决方案。这里是其中一个链接... ( 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>

问题是为什么我得到的是 undefined 而不是 undefined 的值或属性,这样我就可以继续解决这个问题了... 谢谢,任何帮助都将不胜感激...

2个回答

您必须将 referrer 元素 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/

Irvin Dominin
2014-11-10
***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>
kki3908050
2014-11-10