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选择添加属性...因此您正在添加属性valueselected为您的许可证选择...

您可以删除.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 回答