мне кажется, что тут много ошибок:
Смущает BX.selectUtils.addNewOption ( то добавляет, то удаляет)
и порядок вызова параметров, в примере другой порядок задан.
Далее пример смотрим:
Код |
---|
Создать узел var selecList = BX.create('select'); //Добавить option в select BX.selectUtils.addNewOption(selectProject, 'По наименованию', 'NAME'); BX.selectUtils.addNewOption(selectProject, 'По цене', 'PRICE'); //Выделить option с значением NAME BX.selectUtils.selectOption(selecList, 'NAME'); //Выставить в дом собранный узел select BX('sort-panel').append(selecList); |
может быть BX.selectUtils.addNewOption(selecList, 'По наименованию', 'NAME')?
Может, я туплю, но подскажите точнее.
смотрим core.js
Код |
---|
BX.selectUtils = { addNewOption: function(oSelect, opt_value, opt_name, do_sort, check_unique) { смотрим гешды oSelect = BX(oSelect); if(oSelect) { var n = oSelect.length; if(check_unique !== false) { for(var i=0;i<n;i++) { if(oSelect[i].value==opt_value) { return; } } } oSelect.options[n] = new Option(opt_name, opt_value, false, false); } if(do_sort === true) { this.sortSelect(oSelect); } }, deleteOption: function(oSelect, opt_value) { oSelect = BX(oSelect); if(oSelect) { for(var i=0;i<oSelect.length;i++) { if(oSelect[i].value==opt_value) { oSelect.remove(i); break; } } } }, deleteSelectedOptions: function(oSelect) { oSelect = BX(oSelect); if(oSelect) { var i=0; while(i<oSelect.length) { if(oSelect[i].selected) { смотрим гешды oSelect[i].selected=false; oSelect.remove(i); } else { i++; } } } }, deleteAllOptions: function(oSelect) { oSelect = BX(oSelect); if(oSelect) { for(var i=oSelect.length-1; i>=0; i--) { oSelect.remove(i); } } }, optionCompare: function(record1, record2) { var value1 = record1.optText.toLowerCase(); var value2 = record2.optText.toLowerCase(); if (value1 > value2) return(1); if (value1 < value2) return(-1); return(0); }, sortSelect: function(oSelect) { oSelect = BX(oSelect); if(oSelect) { var myOptions = []; var n = oSelect.options.length; var i; for (i=0;i<n;i++) { myOptions[i] = { optText:oSelect[i].text, смотрим гешды optValue:oSelect[i].value }; } myOptions.sort(this.optionCompare); oSelect.length=0; n = myOptions.length; for(i=0;i<n;i++) { oSelect[i] = new Option(myOptions[i].optText, myOptions[i].optValue, false, false); } } }, selectAllOptions: function(oSelect) { oSelect = BX(oSelect); if(oSelect) { var n = oSelect.length; for(var i=0;i<n;i++) { oSelect[i].selected=true; } } }, selectOption: function(oSelect, opt_value) { oSelect = BX(oSelect); if(oSelect) { var n = oSelect.length; for(var i=0;i<n;i++) { oSelect[i].selected = (oSelect[i].value == opt_value); } } смотрим гешды }, addSelectedOptions: function(oSelect, to_select_id, check_unique, do_sort) { oSelect = BX(oSelect); if(!oSelect) return; var n = oSelect.length; for(var i=0; i<n; i++) if(oSelect[i].selected) this.addNewOption(to_select_id, oSelect[i].value, oSelect[i].text, do_sort, check_unique); }, moveOptionsUp: function(oSelect) { oSelect = BX(oSelect); if(!oSelect) return; var n = oSelect.length; for(var i=0; i<n; i++) { if(oSelect[i].selected && i>0 && oSelect[i-1].selected == false) { var option = new Option(oSelect[i].text, oSelect[i].value); oSelect[i] = new Option(oSelect[i-1].text, oSelect[i-1].value); oSelect[i].selected = false; oSelect[i-1] = option; oSelect[i-1].selected = true; } } }, moveOptionsDown: function(oSelect) { oSelect = BX(oSelect); if(!oSelect) return; var n = oSelect.length; for(var i=n-1; i>=0; i--) { if(oSelect[i].selected && i<n-1 && oSelect[i+1].selected == false) { var option = new Option(oSelect[i].text, oSelect[i].value); oSelect[i] = new Option(oSelect[i+1].text, oSelect[i+1].value); oSelect[i].selected = false; oSelect[i+1] = option; смотрим гешды oSelect[i+1].selected = true; } } } }; |