0

目前我正在从事一个有 1 个注册表单的项目。在这种形式中,允许一次添加多个成员。第一个成员是必需的,其他成员不是。为了添加更多成员,我使用 jQuery 中的“附加”,完美地添加了第二个和第三个成员的表单。

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

我使用带有 json 的 jquery 来为我填写一些表单字段。我使用这段代码:

        $('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']);
                })

            }); 
        });

(每当添加新成员时,计数变为计数++)

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

信息成员:

成员 1 - 邮政编码:1111 AA

成员 2 - 门户代码:2222 BB

会员 3 - 邮政编码:3333 CC

4

1 回答 1

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']);
        })

    }); 
});
于 2013-08-21T07:29:49.010 回答