【问题标题】:Can't get a drop-down item's ID无法获取下拉项目的 ID
【发布时间】:2013-10-15 18:27:35
【问题描述】:

我正在尝试在我的 PHP 生成的下拉列表中获取所选项目的 ID。现在控制台说“Uncaught TypeError: Object #exchanges option:selected has no method 'attr'”我不知道出了什么问题。

<html>
<head>
    <title>Administration</title>
    <style>
        #exchanges {
            width: 300px;
        }
    </style>

    <script src="http://codeorigin.jquery.com/jquery-2.0.3.min.js"></script>
</head>
<body>

    <?php populateDropDown(); ?>
    <button id="display_button">Display Information</button>
</body>

<script>
    $(document).ready(function(){
        $('#display_button').on('click', function(){
            var dropdown_id = ('#exchanges option:selected').attr('id');
            alert(dropdown_id); // doesn't work
        });
    });


</script>

</html>

PHP函数:

function populateDropDown(){
$conn = connectPDO();

echo '<select id="exchanges">';

foreach($conn->query('SELECT * FROM exchange') as $row) {
    echo '<option id ='.$row['exchangeID'].'>'; 
    echo $row['exchange-name'];
    echo '</option>';
    }

echo '</select>';

}

【问题讨论】:

  • 选择菜单本身可以使用该方法,但其子项(选项)不能。默认行为是该表单元素返回 IT 选定的值,而不是其子 ID。

标签: javascript php jquery


【解决方案1】:

首先,您在 jQuery 代码中忘记了美元符号:

var dropdown_id = ('#exchanges option:selected').attr('id');

应该是:

var dropdown_id = $('#exchanges option:selected').attr('id');

另外,在你的 PHP 中,改变这个:

echo '<option id ='.$row['exchangeID'].'>'; 

到以下:

echo '<option id="'.$row['exchangeID'].'">';

然后看看它现在是否有效。

【讨论】:

  • 天哪。不知道我是怎么错过的。现在可以用了,谢谢!!!时间结束后将标记为正确。
猜你喜欢
  • 2011-09-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-06
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多