+
This commit is contained in:
@@ -0,0 +1,48 @@
|
||||
var MultiSelect = (function (GLOB) {
|
||||
// Добавить элементы в поле назначения:
|
||||
function moveItems(btn, srcSelect, dstSelect) {
|
||||
btn.onclick = function () {
|
||||
var i;
|
||||
for (i = srcSelect.options.length - 1; i >= 0; i -= 1) {
|
||||
if (srcSelect.options[i].selected) {
|
||||
dstSelect.add(new Option(srcSelect.options[i].text, srcSelect.options[i].value));
|
||||
srcSelect.remove(i);
|
||||
}
|
||||
}
|
||||
};
|
||||
}
|
||||
// Подготовка данных к отправке:
|
||||
function formSubmit(element) {
|
||||
// Ф-ция делает все элеметы спика select выбраными:
|
||||
function makeSelect(element) {
|
||||
var i;
|
||||
for (i = 0; i < element.options.length; i += 1) {
|
||||
element.options[i].selected = true;
|
||||
}
|
||||
}
|
||||
// Ниже мы всего лишь кроссбрауз. устанавливаем слушатель
|
||||
// события отправки формы:
|
||||
if (GLOB.document.addEventListener) {
|
||||
element.form.addEventListener("submit", function () {
|
||||
makeSelect(element);
|
||||
}, true);
|
||||
} else if (GLOB.document.attachEvent) {
|
||||
element.form.attachEvent("onsubmit", function () {
|
||||
makeSelect(element);
|
||||
});
|
||||
} else {
|
||||
element.form.onsubmit = function () {
|
||||
makeSelect(element);
|
||||
};
|
||||
}
|
||||
}
|
||||
return function (srcSelect, dstSelect, takeBtn, dropBtn) {
|
||||
return {
|
||||
init : function (srcSelect, dstSelect, takeBtn, dropBtn) {
|
||||
moveItems(takeBtn, srcSelect, dstSelect);
|
||||
moveItems(dropBtn, dstSelect, srcSelect);
|
||||
formSubmit(dstSelect);
|
||||
}
|
||||
}.init(srcSelect, dstSelect, takeBtn, dropBtn);
|
||||
};
|
||||
}(this));
|
||||
Reference in New Issue
Block a user