我尝试使用JQuery Select Box和Loop Help问题,但似乎我的实现有点不同,我似乎无法使它工作。
我有一个fromSelectBox和一个toSelectBox,我试图移动选项。我试图设置两个条件。如果将选项A放入toSelectBox侧,则它应始终位于底部。如果选项B已经在toSelectBox侧,则不应允许移动A.
我能够做到这一点,所以我不能从列表的底部移动选项A或B,我不能移动A或B以下的任何东西,但是当我一次移动一组物品时,订单可能被打扰
基本上我想要做的就是将项目从fromSelectBox移动到它应该循环的toSelect框,并在必要时使用。
这是我到目前为止所拥有的。
function resortOnMove() {
$('select').each(function(){
$('option', this).each(function(){
if ($('#toSelectBox option:selected').val() == '03' || $('#toSelectBox option:selected').val() == '01') {
alert("moving now");
if ($('#toSelectBox option:selected').index() < $('#toSelectBox option:last').index()) {
$('#toSelectBox option:selected').insertAfter($('#toSelectBox option:last'));
}
}
})
});
答案 0 :(得分:0)
我决定不再进行重新排序,而是在添加倍数时最后将值附加到最后。
$('#moveright').click(function () {
var tempObjects = null;
$('#fromSelectBox option:selected').each(function () {
if (($('#toSelectBox option:last').val() == "03" || $('#toSelectBox option:last').val() == "01") && ($('#fromSelectBox option:selected').val() == "03" || $('#fromSelectBox option:selected').val() == "01")) {
alert($('#toSelectBox option:last').text() + " and " + $('#fromSelectBox option:selected').text() + " cannot both be in Prioritized Categories.");
return false
}
else if ($('#toSelectBox option:last').val() == "03" || $('#toSelectBox option:last').val() == "01") {
var movingObjects = $(this);
movingObjects.remove();
movingObjects.insertBefore($('#toSelectBox option:last'));
}
else {
$('#fromSelectBox option:selected').each(function () {
if ($(this).val() === "01" || $(this).val() === "03") {
if (tempObjects!=null){
alert(tempObjects.text()+ " and " + $(this).text() + " cannot both be in Prioritized Categories.");
return false
}
tempObjects = $(this);
$(this).remove();
}
$(this).remove().appendTo('#toSelectBox');
});
if (tempObjects != null) {
tempObjects.appendTo('#toSelectBox');
}
}
});
});