0

JSはまだ私には少し不自然です。私はそれを読むことはできますが、それを書くことは私がする機会がめったにないことです.

私はこのフォームを持っています(簡略化)

<form>
    <div class="form_element">
        <label for="co">Cust Company:</label>    
        <input type="text" name="co" value="" id="co" />
    </div>
    <div class="form_element">
        <label for="contact">Cust Name:</label>
        <input type="text" name="contact" value="" id="contact" />
    </div>
</form>

入力に対してオートコンプリートが正常に機能しました#coが、次のステップが機能するように少しガイダンスを使用できます。選択に基づいて入力
の名前を自動提案する必要があります。#contact#co

私のJSは現在このようになっています

<script type="text/javascript">
    $('input#co').autocomplete({
        minLength: 2,
        source: function( request, response1 ) {
            url_1 = 'company/get_names/'+ request.term +'/name/json'
            $.getJSON(url_1, function(companies) {
                response1(companies);
            });
        },
        select: function(event, company){
            $('input#co' ).val( company.item.value );

            //alert(company.item.id);   // For testing
            url_2 = 'contact/persons_list/'+ company.item.id +'/json'

            $('input#contact').autocomplete({
                source: function( request, response2 ) {
                    $.getJSON(url_2, function(people) {  
                        response2(people);
                    });
                }
            })
        }    
    });
</script>

#contact入力に値/提案が選択されたら、入力に表示される人/連絡先の提案リストを取得するにはどうすればよい#coですか?

4

1 に答える 1

0

ええと...私は完全に異なるアプローチを取ることになりました.それは私の最初の考えよりもはるかに優れていると思います.

<script type="text/javascript">      

    var co_id;

    $('input#co').autocomplete({
        minLength: 2,
        source: function( request, response ) {
            url = 'company/get_names/'+ request.term +'/name/json',
            $.getJSON(url, function(companies) {
                response(companies);
            });
        },
        select: function(event, company){
            $('input#co' ).val( company.item.value );
            co_id = company.item.id;
        }
    });

    $('input#contact').autocomplete({
        //minLength: 2,
        source: function( request, response ) {
            url = 'contact/persons_list/'+co_id+'/json',
            $.getJSON(url, function(companies) {
                response(companies);
            });
        }
    });

</script>

それはうまくいきます!

于 2012-10-17T20:24:31.603 に答える