我是一个用户列表,在更改此下拉列表时,我想将所选属性设置为列表中当前选定的选项,并为所有其他选项删除所选项。但由于某种原因,它没有按预期工作。
以下是我的代码:
var sel_val_1 = jQuery('#' + id_1 + ' option:selected').val();
jQuery('#'+id_1+' option[value="'+sel_val_1+'"]').attr("selected","selected");
当我在" on change"该选项正在被选中,但之前的选项未被重置。我尝试下面的代码重置,但它也没有帮助。
jQuery('#'+id_1).get(0).selectedIndex = 1;
进行更改时我的主要问题应该只有一个项目被选中="被选中"但每当我选择任何项目时,它都会获得相同的属性。
这就是我得到的:
<select style="width:260px;" name="employee_id" id="employee_id">
<option value="1" selected="selected">None </option>
<option value="4246" selected="selected">Name 1</option>
<option value="3441" selected="selected">Name 2</option>
<option value="4227">Name 3</option>
<option value="4479">Name 4</option>
<option value="4275">Name 5</option>
<option value="4506">Name 6</option>
</select>
感谢任何帮助。
答案 0 :(得分:0)
您必须运行类似
的内容 jQuery('#employee_id').find(":selected").attr('selected', false);
在将新选项设置为selected
之前。
修改强>
我在JSFiddle玩了一下,想出了这个。
$('#employee_id').change(function () {
$(this).children('[selected="selected"]').attr('selected', false);
$(this).find('[value="' + $(this).val() + '"]').attr('selected', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<select style="width:260px;" name="employee_id" id="employee_id">
<option value="1" selected="selected">None </option>
<option value="4246" selected="selected">Name 1</option>
<option value="3441" selected="selected">Name 2</option>
<option value="4227">Name 3</option>
<option value="4479">Name 4</option>
<option value="4275">Name 5</option>
<option value="4506">Name 6</option>
</select>
&#13;