检查选项是否存在,如果它们不存在则附加它们并将一个选项设置为“已选择”

时间:2013-05-14 01:18:23

标签: jquery select append option

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 =“#licence”,我就不能将第一个选项值(“ - select--”选项)设置为选中的选项值

我试过

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

但它不起作用;

希望解释清楚。 任何帮助将不胜感激。

修改

这是一个link来解除这种情况

1 个答案:

答案 0 :(得分: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选择的属性...因此您要为自己添加属性valueselected许可证选择......

你可以移除.val().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>");

Fiddle Sample