Jquery автоматически выбирает следующие X флажки

0

Я работаю над сайтом для театра, где клиент может резервировать билеты. Выбор стула работает следующим образом:

  1. Вы выбираете, сколько стульев вы хотите в выпадающем меню (мы будем называть это X).
  2. Вы отмечаете флажки, где вы хотите сидеть (максимум X).
  3. Выбрав все флажки X, остальные флажки становятся серыми (unclickable).

Есть, конечно, и стулья, которые уже зарезервированы. У них просто нет флажка. Значение флажка совпадает с уникальным идентификатором стула.

Это отлично работает, за исключением того, что я хочу, чтобы система автоматически помещала следующие флажки (следующие 3, если клиент выбрал 4).

Я обновил свой код:

    var _X = $('#PlaatsenDropdown').val() - 1;
    var _id = $(this).id;
    var _counter = _id + _X;

    for(var i = _id; i <= _counter; i++) {
        if($(this).nextAll().is('disabled')) {
            alert('No seats available');
        } else {
            alert('Chairs available');
        }
    }

Идентификатор также является номером стула, поэтому я просто беру это и делаю некоторые вычисления с ним для использования в цикле for. Это, однако, ничего мне не показывает. Я думаю, что может быть что-то не так с расчетами, но я не могу понять, что: S.

  • 0
    JQuery (). Следующий ()
  • 0
    @ deed02392 Я проверил документацию JQuery, но не могу найти, как использовать это для нескольких элементов. Могу ли я просто использовать .next (X)?
Показать ещё 3 комментария
Теги:
checkbox

1 ответ

0

Вы можете создать массив строк идентификатора, аналогичный тому, что вы уже сделали. Затем проведите по массиву с помощью теста "disabled".

Псевдокод:

val = selected_chair_ID
for (i=0; i < desired_number_chairs; i++) {  
    search_right.push('#' + val + i);
    search_left.push(('#' + val - i);
}
found = true;
for (j = 0; j < search_right.length; j++) {  //  Check chairs to the right
    $(search_right[j]).....// Disabled check
    if (disabled...) {
        found=false;
    }
if (!found) {
    check chairs to the left 
}
if (!found) // out of luck
  • 0
    Я думаю, что многие из этого кода могут быть заменены с помощью функции jquery .nextAll (). Можете ли вы проверить мой обновленный код? (В оригинальном вопросе). Я думаю, что это ближе к тому, чтобы быть сделано сейчас, но это всегда возвращает остальное.
  • 0
    Извините, но я вообще не понимаю этот код. Кажется, что половина отсутствует, и у вас есть двойная проверка, установлено ли найдено или нет.
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню