javascript - 在 jquery 创建的新元素上使用 javascript

标签 javascript jquery html

我有一个字段位置,并且有一个按钮添加新位置。单击该按钮时,该字段的新文本框将打开。现在我所做的是我在该位置字段上使用自动填充地址,但自动填充适用于只有第一个文本框,而不是我使用 jquery 创建的文本框

下面是html代码

<div class="input_fields_wrap">
 <div class="form-group">
<label class="col-md-3 control-label" for="example-text-input">Preferred Work Location</label>
<div class="col-md-3">
<input type="text" id="loc" name="Work_Location[]" class="form-control" >
</div>
<button class="add_field_button">Add More Locations</button>
</div>
</div>

下面是创建新文本框的代码

<script>
$(document).ready(function() {
    var max_fields      = 10; //maximum input boxes allowed
    var wrapper         = $(".input_fields_wrap"); //Fields wrapper
    var add_button      = $(".add_field_button"); //Add button ID

    var x = 1; //initlal text box count
    $(add_button).click(function(e){ //on add input button click
        e.preventDefault();
        if(x < max_fields){ //max input box allowed
            x++; //text box increment
            $(wrapper).append('<div class="form-group"><label class="col-md-3 control-label" for="example-text-input">Preferred Work Location</label><div class="col-md-3"> <input type="text" id="loc" name="Work_Location[]" class="form-control"  ></div><a href="#" class="remove_field">Remove</a></div>'); //add input box
        }
    });

    $(wrapper).on("click",".remove_field", function(e){ //user click on remove text
        e.preventDefault(); $(this).parent('div').remove(); x--;
    })
});
</script>

下面是自动填充代码

    <script type="text/javascript" src="http://maps.google.com/maps/api/js?sensor=false&libraries=places&language=en-AU"></script>
    <script>
        var autocomplete = new google.maps.places.Autocomplete($("#loc")[0], {});

        google.maps.event.addListener(autocomplete, 'place_changed', function() {
            var place = autocomplete.getPlace();
            console.log(place.address_components);
        });
    </script>

上面的代码的作用是在填写位置时给出建议

最佳答案

Mathod 上的 Jquery 将事件分别附加到选择器部分中选择的每个元素。如果您添加新的事件,则需要在那里重新附加该事件。

<script>
$(document).ready(function() {
var max_fields      = 10; //maximum input boxes allowed
var wrapper         = $(".input_fields_wrap"); //Fields wrapper
var add_button      = $(".add_field_button"); //Add button ID

var x = 1; //initlal text box count
$(add_button).click(function(e){ //on add input button click
    e.preventDefault();
    if(x < max_fields){ //max input box allowed
        x++; //text box increment
container = $('<div class="form-group"></div>');
container.append('<label class="col-md-3 control-label" for="example-text-input">Preferred Work Location</label><div class="col-md-3"> <input type="text" id="loc" name="Work_Location[]" class="form-control"  ></div>');
remove_box = $('<a href="#" class="remove_field">Remove</a>').on('click', remove_field);
container.append(remove_box);
        $(wrapper).append(container); //add input box
    }
});
function remove_field(e) {//user click on remove text
    e.preventDefault(); $(this).parent('div').remove(); x--;
}

$(wrapper).on("click",".remove_field", remove_field);
});
</script>

类似这样的事情。我没有检查语法,因此请修复必要的内容。

关于javascript - 在 jquery 创建的新元素上使用 javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31649296/

相关文章:

javascript - 如何使用定制器_cloneDeepWith_并添加属性

jquery - Rails Ajax 无法验证 CSRF token 的真实性

javascript - 如何将参数传递给 LI 中的 onclick ="window.location"

css - svg 字体未在 Chrome 中使用 @font-face 加载到网页上

javascript - jquery 根据动态选择值显示隐藏 div

javascript - Nightwatch.js 从输入中获取值并在下一步中使用它

javascript - 1 个 promise 有多个消费者可以吗?

html - IE CSS 显示问题

javascript - 仅在一个元素内覆盖滚动功能

jquery - Twitter Bootstrap : How to close modal/popover programmatically with jQuery