我有一个选择下拉列表:
<select multiple="" id="search_skills" name="search_skills[]">
<option value="all">All</option>
<option value="1">PHP</option>
<option value="2">JAVA</option>
<option value="3">.NET</option>
</select>
现在,当用户首先选择“全部”时,应选择所有值。所以我想要一个点击事件。 这是我正在尝试的。但它不起作用。
$(function(){
$("select[name='search_skills[]']").change(function() {
if ( $("select[name='search_skills[]']")[0].selectedIndex === 0 ) {
var sel_val = $("#search_skills").val();
alert(sel_val);
if(sel_val == 'all'){
$("#search_skills > option").prop("selected","selected");
}
else if(sel_val.indexOf('all') == '-1'){
$("#search_skills > option").removeAttr("selected");
}
$('#search_skills').selectpicker('refresh');
}
});
});
请帮忙。
答案 0 :(得分:0)
使用jQuery prop
$('#selectall').click(function() {
$('option').prop('selected', true);
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select multiple="" id="search_skills" name="search_skills[]">
<option id="selectall" value="all">All</option>
<option value="1">PHP</option>
<option value="2">JAVA</option>
<option value="3">.NET</option>
</select>
&#13;
答案 1 :(得分:0)
您可以尝试使用prop()
功能:
$(document).on('click', '#search_skills option[value="all"]', function() {
var that = $(this);
var opt = $('#search_skills > option');
if (!that.is('selected')) {
opt.prop('selected', true);
}
});
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<select multiple="" id="search_skills" name="search_skills[]">
<option value="all">All</option>
<option value="1">PHP</option>
<option value="2">JAVA</option>
<option value="3">.NET</option>
</select>
&#13;
答案 2 :(得分:0)
尝试 -
$('#search_skills option:first').on('click', function() {
var that = $(this);
var opt = $('#search_skills > option');
if (!that.is('selected')) {
opt.prop('selected', true);
}
})