由於 ASP.NET 的 DropDownList 控制項不支援 optgroup 標籤,就無法做選項分組的功能 ..
後來想用 jQuery 實現此一功能,我寫成 plugin 了,可參考一下:
把這段 code 存成 optgroupTrans.js:
$.fn.optgroupTrans = function() {
var items = $(this);
var groupnames = [];
for (var i = 0; i < items.length; i++) {
if ($(items[i]).attr('optgroup') != null) {
groupnames.push($(items[i]).attr('optgroup'));
}
}
// groupnames = $.unique(groupnames);
groupnames = uniqueArray(groupnames);
for (var i = 0; i < groupnames.length; i++) {
$("option[optgroup='" + groupnames[i] + "']").wrapAll("<optgroup label='" + groupnames[i] + "'>");
}
function uniqueArray(a){
temp = new Array();
for(var i = 0; i < a.length; i++){
if (!contains(temp, a[i])){
temp.length += 1;
temp[temp.length - 1] = a[i];
}
}
return temp;
}
function contains(a, e) {
for (j = 0; j < a.length; j++)
if (a[j] == e) return true;
return false;
}
};
Continue reading