$.select_all_nbrs = function(id) {
$("#"+id+" > option").attr('selected', 'selected');
}
$( '#id_selectall_btn').click( function() {
var nbr = $("#id_nbrs");
var duplicate=false;
nbr.find("option").each(function(){
if(nbr.find("option[value='"+$(this).val()+"']").length >1){
duplicate=true;
show_messages("Duplicate! value "+$(this).val());
}
});
if(!duplicate){
($.select_all_nbrs("#id_nbrs"));
}
});
根据评论,如果您想选择所有但重复的消息,请尝试以下代码
$.select_all_nbrs = function(id) {
var nbr = $("#id_nbrs");
var duplicate=false;
nbr.find("option").each(function(){
if(nbr.find("option[value='"+$(this).val()+"']").length >1){
duplicate=true;
show_messages("Duplicate! value "+$(this).val());
}else{
$(this).attr('selected', 'selected');
}
});
}
$( '#id_selectall_btn').click( function() {
($.select_all_nbrs("#id_nbrs"));
});
根据评论 Op 只想比较第一个重复选项注意更改的行if(nbr.find("option[value^='"+$.get_id_num($(this).val())+"|']").length >1){
value^=
表示值以.. 开头。因此, $.get_id_num($(this).val())+"|"
如果长度大于 1 表示重复,则条件意味着查找具有以开头的值的选项。我们也需要按原样 |
添加<option value="1|2|3">
,但重复not duplicate
<option value="11|2|3">
<option value="1|5|8">
$.select_all_nbrs = function(id) {
var nbr = $("#id_nbrs");
var duplicate=false;
nbr.find("option").each(function(){
if(nbr.find("option[value^='"+$.get_id_num($(this).val())+"|']").length >1){
duplicate=true;
show_messages("Duplicate! value "+$(this).val());
}else{
$(this).attr('selected', 'selected');
}
});
}
$.get_id_num = function(num){
var num_str = num.toString();
var elements = num_str.split('|');
return elements[0];
}
$( '#id_selectall_btn').click( function() {
($.select_all_nbrs("#id_nbrs"));
});