用append和bind填写表单

时间:2013-08-21 07:22:51

标签: jquery append bind

目前我正在开发一个有1种注册形式的项目。在这种形式下,允许在1 go中添加多个成员。第一个成员是必需的,其他成员则不是。为了添加更多成员,我使用jQuery中的'append'来完美地添加第二个和第三个成员的表单。

现在,我想添加一段代码,当我填写邮政编码时,它会自动填写我的街道名称和城市。

我使用jquery和json为我填写一些表单字段。我用这段代码:

        $('input[name=postcode_1]').change(function(){
            //100420//
            b_postcode = $('input[name=postcode_1]').val();
            $.getJSON('/inc/getPostcodeInfo.php', {postcode:b_postcode}, function(data) {
                    $('input[name=adres_1]').val('');
                    $('input[name=plaats_1]').val('');              
                $.each(data, function(index, array) {   
                //  alert(array['straat']);                     
                    $('input[name=adres_1]').val(array['straat']);
                    $('input[name=plaats_1]').val(array['woonplaats']);
                })

            }); 
        });

这适用于1个成员但是当我添加第二个和第三个成员时它不起作用。我读到我需要使用'bind'函数,这就是我用于第二和第三个成员的函数:

html.bind('change', '[name=postcode_'+ count +']', function(){

            b_postcode = $('input[name=postcode_'+ count +']').val();
            $.getJSON('/inc/getPostcodeInfo.php', {postcode:b_postcode}, function(data) {
                    $('input[name=adres_'+ count +']').val('');
                    $('input[name=plaats_'+ count +']').val('');                
                $.each(data, function(index, array) {   
                //  alert(array['straat']);                     
                    $('input[name=adres_'+ count +']').val(array['straat']);
                    $('input[name=plaats_'+ count +']').val(array['woonplaats']);
                })

            }); 
        });

(每当添加新成员时,count将变为count ++)

这似乎只适用于最后添加的成员。我如何才能完成这项工作,以便为所有成员自动填写街道名称和城市?

信息成员:

会员1 - 邮政编码:1111 AA

会员2 - 门户网站代码:2222 BB

会员3 - 邮政编码:3333 CC

1 个答案:

答案 0 :(得分:0)

尝试(对于jquery> = 1.7)

$(document).on('change', '[name^=postcode_]', function(){
    var $this = $(this), count = $this.attr('name').match(/(\d+)/)[1];

    b_postcode = $(this).val();
    $.getJSON('/inc/getPostcodeInfo.php', {postcode:b_postcode}, function(data) {
        $('input[name=adres_'+ count +']').val('');
        $('input[name=plaats_'+ count +']').val('');                
        $.each(data, function(index, array) {   
            //  alert(array['straat']);                     
            $('input[name=adres_'+ count +']').val(array['straat']);
            $('input[name=plaats_'+ count +']').val(array['woonplaats']);
        })

    }); 
});