我正在使用jQuery以编程方式更新所选选项,但浏览器中没有任何更改。 (即,旧的选定选项保持选中状态,而不是切换到新选择的选项。)建议?
感谢。 --Jeff
我有一个这样的简单形式:
<form id="form1" name="form1" method="" action="">
<p>Assign:
<select name="assigner" id="assigner">
<option value="Sam" selected="selected">Sam</option>
<option value="Harry">Harry</option>
<option value="Fred">Fred</option>
</select>
<input type="button" name="button1" id="button1" value="Submit" />
</p>
<p> Task A: <select name="assignment[]" id="assigner">
<option value="Sam">Sam</option>
<option value="Harry" selected="selected">Harry</option>
<option value="Fred">Fred</option>
</select>
</p>
<p>
Task B: <select name="assignment[]" id="assigner">
<option value="Sam">Sam</option>
<option value="Harry" selected="selected">Harry</option>
<option value="Fred">Fred</option>
</select>
</p>
</form></div>
我的jQuery代码如下所示:
<script type="text/javascript">
jQuery(document).ready(function(){
$('[name="button1"]').click(
function(){
var form = $(this).parents('form');
var assigned = form.find(':selected').first().val();
form.find(':selected').each(function(index){
$(this).val( assigned ).change();
});
}
);
});
</script>
答案 0 :(得分:4)
我正在使用jQuery以编程方式更新所选选项
不是我能看到的。您正在重新设置所选option
的值,但在实际的select
框中没有做任何事情。
要更改select
框,您需要识别它,然后在它上调用val
,而不是其option
元素之一。
我无法说明您希望input[name="button1"]
做什么,但这是更新select
框的示例:Live copy | source
HTML:
<select id="theSelect">
<option value="1">One</option>
<option value="2">Two</option>
<option value="3">Three</option>
</select>
<input type="button" id="theButton" value="Click me">
JavaScript的:
jQuery(function($) {
$("#theButton").click(function() {
$("#theSelect").val("2");
});
});
另外,正如j08691在评论中指出的那样,您不能将相同的id
值("assigner"
)分配给多个元素。文档中id
values must be unique。您的代码没有显示您使用id
,因此这可能是不相关的,但值得标记。
答案 1 :(得分:1)
<form id="form1" name="form1" method="" action="">
<p>Assign:
<select name="assigner" id="assigner">
<option value="Sam" selected="selected">Sam</option>
<option value="Harry">Harry</option>
<option value="Fred">Fred</option>
</select>
<input type="button" name="button1" id="button1" value="Submit" />
</p>
<p>
Task A: <select name="assignment[]" id="assigner2">
<option value="Sam">Sam</option>
<option value="Harry" selected="selected">Harry</option>
<option value="Fred">Fred</option>
</select>
</p>
<p>
Task B: <select name="assignment[]" id="assigner3">
<option value="Sam">Sam</option>
<option value="Harry" selected="selected">Harry</option>
<option value="Fred">Fred</option>
</select>
</p>
</form>
<script type="text/javascript">
jQuery(document).ready(function(){
$('[name="button1"]').click(
function(){
var assigned = $("#assigner").val();
$('#form1 select').val( assigned );
}
);
});
</script>