0

1) 次のコードは、選択した値にいくつかのオプションを追加します

  $('#product').on('change',function(){

  if($(this).val()!=='Free'){

   $("#license option:selected").remove();
   $("#license").append("<option value=''> -- Select --</option>").attr('selected','selected');
   $("#license").append("<option value='1'>1</option>").val('Licenza');
   $("#license").append("<option value='2'>2</option>").val('2');
   $("#license").append(" <option value='3'>3</option>").val('3');
    }else{
   $("#license").find('option').remove().end().append("<option value='free'>    Free</option>").val('free');
    }              
   });

問題は、select id= "#product" を変更するたびに、4 つのオプションすべてが追加されることです。オプションが存在するかどうかを確認するために、どの場所に .length を挿入する必要がありますか?

2) また、オプションが存在せず、select id="#license" に追加されている場合、最初のオプション値 (「--select--」オプション) を選択されたものに設定できません。

私は試してみました

   .attr('selected','selected');

しかし、うまくいきません。

説明が十分に明確であることを願っています。どんな助けでも大歓迎です。

編集

ここに状況を理解するためのリンクがあります

4

1 に答える 1

1
$("#license").append("<option value=''> -- Select --</option>").attr('selected','selected');
$("#license").append("<option value='1'>1</option>").val('Licenza');
$("#license").append("<option value='2'>2</option>").val('2');
$("#license").append(" <option value='3'>3</option>").val('3');

.val()attr('selected','selected')ここでのメソッドは、license選択の属性を追加するために使用されます...したがって、属性valueを追加selectedしていて、ライセンスの選択...

.val()andを削除し.attr()て、追加文字列に配置できます...次のように:

$("#license").append("<option value='' selected> -- Select --</option>");
$("#license").append("<option value='Licenza'>Licenza</option>");
$("#license").append("<option value='2'>2</option>");
$("#license").append(" <option value='3'>3</option>");

フィドルのサンプル

于 2013-05-14T02:18:08.540 に答える