$.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"));
});
按照評論作品要比較只有第一個選項爲重複 注意改變的線if(nbr.find("option[value^='"+$.get_id_num($(this).val())+"|']").length >1){
value^=
表示值以..開頭.. 條件平均值查找選項whi如果長度大於1意味着重複,那麼ch的值從$.get_id_num($(this).val())+"|"
開始。 我們需要添加|
也爲<option value="1|2|3">
是<option value="11|2|3">
not duplicate
但<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"));
});
謝謝拉胡爾的重複,我就給你一展身手。 – Sxkaur 2013-05-14 04:38:43
只是更進一步,如果我想選擇一切,但不是重複? (所以如果點擊按鈕,它會選擇所有的值,但重複,並會提示我的消息。) – Sxkaur 2013-05-14 04:45:19
謝謝,這工作出色。但我有var nbr = $(「#id_nbrs」);通過解析它的函數傳遞var nbr = $ .get_id_nbr(「#id_nbrs」);現在它不起作用,因爲它是元素與選項的比較。有沒有解決這個問題? – Sxkaur 2013-05-14 15:51:42