javascript - ajax 不适用于多个选择框

标签 javascript jquery ajax

我通过单击添加按钮有多个选择框,并且所有选择框都有对更改事件的 ajax 调用,但它不起作用。只为第一工作。 代码如下。

以下代码为默认选择框调用ajax,但不适用于下一个动态插入的选择框..

$(document).ready(function () {
        $(".one").change(function () {
            var one = $('.one').val();
            var company = $('.one').next();
            $.ajax({
                url: 'https://champbaba.tk/demo/two.php',
                data: {'one': one},
                type: 'POST',
                success: function (data) {
                    $(company).html(data);
                }
            });
        });
    });


    $(document).ready(function () {
        var companyhtml = $(".one").html();
        $(".add").click(function (e) { //on add input button click
            e.preventDefault();
            $('<select class="one">' + companyhtml + '</select><select class="two"></select>').insertAfter($('.wrap'));
        });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
    <select class="one">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>
    <select class="two">

    </select>
</div>
<button class="add">Add</button>

最佳答案

它正在工作,但我认为这不是一个好的工作方式,您需要搜索如何重新初始化事件。

$(document).ready(function () { 
        var companyhtml = $(".one").html();
        $(".add").click(function (e) { //on add input button click
            e.preventDefault();
            $('<select class="one">' + companyhtml + '</select><select class="two"></select> <br>').insertAfter($('.wrap'));
            
             $("select").change(function () {
                var one = $(this).html();
                var company = $(this).next('select').html(one)
                $(this).next('select').val(1);
           });
        });
        
          $("select").change(function () {
              var one = $(this).html();
              var company = $(this).next('select').html(one)
              $(this).next('select').val(1);
           });
    });
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div class="wrap">
    <select class="one">
        <option value="1">1</option>
        <option value="2">2</option>
        <option value="3">3</option>
        <option value="4">4</option>
        <option value="5">5</option>
    </select>
    <select class="two">

    </select>
</div>
<button class="add">Add</button>

现在就试试吧。

关于javascript - ajax 不适用于多个选择框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45497562/

相关文章:

javascript - 在 javascript 中掷骰子

javascript - JSON.NET 是做什么用的? MVC已经有一种将对象转换为json的方法

javascript - Event.target.value 未正确检索值

javascript - 如何在基本js slider 上循环播放幻灯片

jQuery .live() 不适用于单击事件

javascript - 避免在谷歌地图上加载具有相同纬度和经度的标记

javascript - 如何在 React Native 中根据其中心而不是起点旋转 svg?

jquery - 无法让 Google Maps API v3 在 jQuery Mobile 上完全加载

ajax - 为什么 commandButton 在 tomcat 中运行时可以在我的表单中运行,而在 glassfish 中运行时不起作用?

jquery - 带有阴影和底部边框的圆形 CSS 形状