[URL=https://dev.1c-bitrix.ru/api_help/js_lib/kernel/dom_control/bx_selectutils.php]https://dev.1c-bitrix.ru/api_help/js_lib/kernel/dom_control/bx_selectutils.php[/URL]
[URL=http://joxi.ru/ZrJnJqgiMwLORr]http://joxi.ru/ZrJnJqgiMwLORr[/URL]
мне кажется, что тут много ошибок:
Смущает BX.selectUtils.addNewOption ( то добавляет, то удаляет)
и порядок вызова параметров, в примере другой порядок задан.
Далее пример смотрим:[CODE]Создать узел
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);
[/CODE]
может быть BX.selectUtils.addNewOption(selecList, 'По наименованию', 'NAME')?
Может, я туплю, но подскажите точнее.
смотрим core.js
[CODE]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;
}
}
}
};[/CODE]