0

質問に対する答えを知っている人はあまりいないようです。私は、何を取得しようとしているのかを理解しやすくするために、少し言い換えました。私を助けてください。

 <select id="1">
  <option val="1"></option>
  <option val="2"></option>
 </select>

値=2のオプションが選択されている場合、次のような新しいドロップダウンボックスを表示します。

 <select id="2">
  <option val="1"></option>
  <option val="2"></option>
 </select>

ID 2でわかるように、同じオプションがありますが、ユーザーが別のオプションを選択するたびに新しいドロップダウンボックスが必要です。私のjqueryとhtmlコードは以下の通りです:

HTML:

<div id="campaigns">
    <div id="campaign_1">
        <label for="ddcampaign" style="margin-right: 10px;">Campaign:</label>     
        <?=showCampaignDropdown('campaign', false, false, true, false, 'All Campaigns')?>
    </div>
</div>

showCampaignDropdownが行うことは、一連のオプションを使用して選択を作成することです。

私のJqueryは次のようになります:

 $(function() {
    campaigncount = 1;
    $(document).on('change', '#campaign_' + campaigncount + ' select',  function() {
        var firstcampaign = parseInt($('#campaign_'+campaigncount+' select option:selected').val());
        //alert(campaigncount);
        campaigncount++;    
        //if value is > 0 add more campaigns to search
        if (firstcampaign > 0) {
            $(this).attr('disabled', true);
            $('#campaigns').append('<div id="campaign_'+campaigncount+'"><?=showCampaignDropdown('campaign', false, false, true, false, 'All Campaigns')?></div>');
        } else {
            $('#campaign_' + (campaigncount-1) + ' select').attr('disabled', false);
        }
    });
});

最初の選択で機能するため、元のcampaign_1 selectが選択されると、新しいドロップダウンが追加され、最初の選択が無効になり、2番目に選択された場合は何も起こりません。助けてください。ドロップダウンボックスは同じである必要があり、IDを変更したくありません。PHP経由で生成されたため。

4

1 に答える 1

1

変更イベントを#campaign_1divにのみ添付しています。これを行う必要があります。これ on('change', '#campaigns select' ...で、キャンペーンdivにあるすべての選択がそのハンドラーを実行します。

于 2012-09-04T20:06:46.617 に答える