我尝试使用javascript选择多选flower[ ]
的所有选项,但是当我点击提交时没有发生任何事情,请说明错了什么?
<html>
<head>
<script language="javascript" type="text/javascript">
$("#submit").click(function() {
$('#flower option').each(function() {
$(this).attr('selected', true);
});
});
</script>
</head>
<body>
<form method="Get" action="#">
<select name="flower[ ]" id="flower" multiple>
<option value="flower">FLOWER</option>
<option value="rose">ROSE</option>
<option value="lilly">LILLY</option>
<option value="jasmine">JASMINE</option>
<option value="lotus">LOTUS</option>
<option value="tulips">TULIPS</option>
</select>
<input type="submit" id="submit" name="submit" value="submit">
</form>
</body>
</html>
答案 0 :(得分:2)
您必须将您的javascript点击功能放在文档就绪功能中。喜欢这个
$(document).ready(function(){
$("#submit").click(function(e){
$('#flower option').each(function () {
$(this).attr('selected', true);
});
});
});
干杯...... :)
答案 1 :(得分:2)
你错过了:
$(document).ready(function(){
在您的脚本上方,然后使用以下命令关闭它:
});
但如上所述:
$('#flower option').attr('selected', true);
也应该做的伎俩
答案 2 :(得分:1)
$('#flower option').attr('selected', true);
您已经选择了所有选项,因此不需要每个循环。
答案 3 :(得分:1)
您没有在问题中指定,但看起来您正在使用jQuery。如果这样做,请首先确保已将代码放在$(document).ready(function(){...})
块内,以便等待DOM准备好开始附加事件侦听器。此外,您不应该.each(function(){...})
来电。最后,为确保跨浏览器兼容性并符合标准,请将selected
属性设置为'selected'
而不是true
。请参阅下面的代码。
$(document).ready(function() {
$('#submit').click(function() {
$('#flower option').attr('selected', 'selected');
});
});
的修改
实际上,最好在这里使用jQuery的.prop()
,因为只使用.attr()
来设置选项的初始状态。所以......
$(document).ready(function() {
$('#submit').click(function() {
$('#flower option').prop('selected', true);
});
});
有关这方面的更多信息可以在这个问题中找到...
Jquery select all values in a multiselect dropdown
答案 4 :(得分:1)
将你的javascript放在正文的末尾或使用$(document).ready()。必须在表单已经呈现时执行。
你可以用.val()来做。 $(&#39;#flower&#39;)。val(价值阵列),即
$('#flower').val(['lilly', 'lotus']);
选择所有可以使用的
$('#flower').val($('#flower option').map(function(){
return $(this).attr('value');
}));