dongqiao3927 2012-05-30 10:11
浏览 69
已采纳

使用AJAX和jQuery自动选择下拉列表

I have 3 dropdown lists. 1) Type 2) Duration 3) Class

<select name="passenger_type_of_pass" class="pass">
    <option value="">- - Type - -</option>
    <?
       $result_type_of_pass = myquery($type_of_pass);                                           
       while($row = mysql_fetch_array($result_type_of_pass))
       {
          echo "<option value=\"" . $row['product_name'] . "\">" . $row['product_name'] . "</option>";  
       }
    ?>
</select>

<select name="passenger_duration" class="duration">
    <option>--Duration--</option>
</select>

<select name="passenger_class" class="class">
    <option>--Class--</option>
</select>

Using jQuery, I make them updated as there is change in each select box.

        $(".pass").change(function()
        {
            var pass=$(this).val();
            var dataString = 'pass='+ pass;

            $.ajax
            ({
                type: "GET",
                url: "duration.php",
                data: dataString,
                cache: false,
                success: function(html)
                {
                    $(".duration").html(html);
                }
            });

        });

        $(".duration").change(function()
        {
            var duration=$(this).val();
            var pass=$(".pass").val();
            var dataString = 'pass='+ pass + '&duration=' + duration;

            $.ajax
            ({
                type: "GET",
                url: "class.php",
                data: dataString,
                cache: false,
                success: function(html)
                {
                    $(".class").html(html);
                }
            });

        });

I want to change this code in such a way that as soon as I select "type_of_pass", the "duration" dropdown list gets populated and also the top option gets SELECTED!! With this auto-selected duration, jQuery for searching the class runs and gets populated with the top option selected.

Currently with my code, I have to CHANGE the duration to get the class populated.

Thanks

  • 写回答

1条回答 默认 最新

  • douyanguo7964 2012-05-30 10:12
    关注

    Trigger a change event after populate them like

    $('.duration').change():
    

    CODE:

    $.ajax({
        type: "GET",
        url: "duration.php",
        data: dataString,
        cache: false,
        success: function(html) {
            $(".duration").html(html);
            $(".duration").change(); // here to trigger a change
        }
    });
    

    To set any specific options you can do

    $('.duration option:eq(1)').prop('selected', true); // here I set the second option
    

    DEMO

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 安卓adb backup备份应用数据失败
  • ¥15 eclipse运行项目时遇到的问题
  • ¥15 关于#c##的问题:最近需要用CAT工具Trados进行一些开发
  • ¥15 南大pa1 小游戏没有界面,并且报了如下错误,尝试过换显卡驱动,但是好像不行
  • ¥15 没有证书,nginx怎么反向代理到只能接受https的公网网站
  • ¥50 成都蓉城足球俱乐部小程序抢票
  • ¥15 yolov7训练自己的数据集
  • ¥15 esp8266与51单片机连接问题(标签-单片机|关键词-串口)(相关搜索:51单片机|单片机|测试代码)
  • ¥15 电力市场出清matlab yalmip kkt 双层优化问题
  • ¥30 ros小车路径规划实现不了,如何解决?(操作系统-ubuntu)