jquery:val()方法不起作用

时间:2015-06-03 10:04:45

标签: jquery

我有一个通过jquery ajax填充的下拉元素

    <select name="category" class="form-control"></select>

这是用于填充下拉列表的jquery代码

    $.post(
    "get_categories.php",
    {
        id: 1
    }, function(data) {
        $($('select[name=category]')).html(data);

    }
);

要查看是否已成功填充下拉列表,请使用console.log

     }, function(data) {
        $($('select[name=category]')).html(data);
        console.log(data)
    }

这就是我在浏览器控制台窗口中获得的内容

    <option value='1'>Stuffed Toy</option><option value='1'>Plushie</option><option value='1'>Memorabilia</option>

确实成功填充了下拉列表以测试当我选择另一个选项时,值是否会改变我包含此代码段:

    $('select[name=category]').change(function(){
    console.log($(this).val());
});

更改选项后,这就是我所拥有的

    <option value='1'>Stuffed Toy</option><option value='1'>Plushie</option><option value='1'>Memorabilia</option>
    1

下拉的价值根本不会改变。我做错了什么?

3 个答案:

答案 0 :(得分:0)

你的Html all选项 value ='1',所以你必须找到选项

git log | blabla | xargs -I% git rebase -i HEAD~%

<强> DEMO

答案 1 :(得分:0)

要从下拉列表中获取值,您可以使用原生javascript this.value

$('select[name=category]').change(function(){
   var selectedValue = this.value;
});

首先尝试通过在更改事件中放置console.log来查看事件是否被调用。

答案 2 :(得分:0)

这是php代码

    <?php
$id = $_REQUEST['id'];
include 'connect.php';
$query = "SELECT DISTINCT category FROM tbl_product";
$result = db_query($query);
$count = 1;
if ($result->num_rows > 0) {
    while($row = $result->fetch_assoc()){
        echo $count;
        echo "<option value='".$count."'>".$row['category']."</option>";
        $count++;
    }
}

&GT;