2012-06-26 2 views
0

Как я могу проверить, если есть рядом, потому что не хочет работатьJQuery nextAll(), проверьте, есть ли следующий

Считает 3 элементов все время по какой-то причине?

$("body "+content).on("keypress","form.fcheckoutform :input.aantal",function(e) { 
     if (e.keyCode === 9) { 

      var nextItem = $(this).nextAll(); 

      if (!nextItem.length) { 
       $(content+ '.aantal:eq(0)').focus(); 
       return false; 
      } 
      $(this).nextAll().focus(); 
     } 
    }); 

EDIT: решена

$("body "+content).on("keypress","form.fcheckoutform :input.aantal",function(e) { 
     e.preventDefault(); 
     if (e.keyCode === 9) { 
      var nextItem = $(this).parents('.item-checkout').next().children('form').children('div.fr').find('.aantal'); 
      if (!nextItem.length) { 
       $(content+ ' .aantal:first').focus(); 
      }else{ 
       nextItem.focus(); 
      } 
     } 
    }); 

спасибо, Ричард

+0

.next() должно быть достаточно, она возвращает 0 или 1 элемент, основанный на том, есть ли элемент сразу после селе cted элемент. –

+0

следующий diddn't не работает для меня, он просто выбрал следующий элемент, но не тот же тип – Richard

+0

добавьте селектор в .nextAll(), чтобы выбрать только те элементы, которые соответствуют текущему типу. –

ответ

0

Попробуйте это:

$("body "+content).on("keypress","form.fcheckoutform :input.aantal",function(e) { 
    if (e.keyCode === 9) { 

     var nextItem = $(this).nextUntil(':input.aantal').next(); 

     if (!nextItem.length) { 
      $(content+ '.aantal:eq(0)').focus(); 
      return false; 
     } 
     $(this).nextUntil(':input.aantal').next().focus(); 
    } 
}); 
+0

нет, это не сработало – Richard

+0

Являются ли входы вложенными в любом случае? (например, внутри разделов или ярлыков) –

+0

да внутри div, вы можете проверить www.woonbel.nl - klik left uppercorner – Richard

Смежные вопросы