1

我是 Jquery 的新手,但我已经将用于选择更改的 jquery 搜索代码与添加/删除实例按钮的代码放在一起,其想法是用户在下拉列表中选择一个条目,页面返回一个包含信息的表数据库。如果需要,用户可以单击一个按钮来添加下拉列表的副本并选择另一个条目等。

我在执行实际搜索的代码方面遇到了一些问题,只有第一个下拉列表实际发送和接收任何数据,其他的虽然他们有正确的 id 名称等什么都不做。

确保每个克隆组彼此独立行动的最佳方法是什么?

        $(document).ready(function() {   
        // Am I correct in thinking that if this variable is read on load it will never update and always be 1 as there are no other cloned inputs.
        var num =  $('.clonedInput').length;

        $('#issue-drop' + num).change(function() {

            var qString = 'id=' +$(this).val();
            $.post('sub_db_handler.php', qString, processResponse);

        });

        function processResponse(data) {
            $('#results' + num).html(data);
        }

    });

这是我的表单生成源的示例

<div id="issues-wrap1" style="margin-bottom:4px;" class="clonedInput">
            <select name="Issues[]" id="issue-drop1">
                <option selected>Please Select...</option>
              </select>
            <div id="results1">

            </div>
        </div>

 <!-- Second div starts here -->

 <div id="issues-wrap2" style="margin-bottom:4px;" class="clonedInput">
            <select name="Issues[]" id="issue-drop2">
                <option selected>Please Select...</option>
              </select>
            <div id="results2">

            </div>
        </div>
4

2 回答 2

1

你应该使用委托:{看看它是否适合你}

 $(document).on('change','.clonedInput select',function() {

        var data = {id: $(this).val()};
        $.post('sub_db_handler.php', data, processResponse);

    });
于 2013-05-16T14:23:14.760 回答
0
$('.clonedInput').length;  

此行将返回页面中具有“clonedInput”类的元素的数量。在这种情况下为“2”。您必须创建一个“for”,以便您可以向每个元素添加事件。

于 2013-05-16T14:22:35.673 回答