0

現在、登録フォームが 1 つあるプロジェクトに取り組んでいます。このフォームでは、一度に複数のメンバーを追加できます。最初のメンバーは必須ですが、他のメンバーは不要です。さらにメンバーを追加するには、2 番目と 3 番目のメンバーのフォームを完全に追加する 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 つのメンバーに対しては完全に機能しますが、2 番目と 3 番目のメンバーを追加すると機能しません。次のように、2番目と3番目のメンバーに使用した関数「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

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 に答える