2015-06-17 2 views
-2

У меня есть несколько div с тем же классом -. New-contact.clearfix.invite '. В divs содержатся некоторые входы.blur/focusout не работает

Я хочу выполнить валидацию в форме (которую ее класс «приглашает»), только когда я нажимаю/ввожу какой-либо ввод в другой строке (каждый div - это другая строка).

Я попытался следующие, но событие не срабатывает:

$('.invite').on('blur','.new-contact.clearfix.invite', function() { 
$('.invitePartners').valid() 
}) 

Пример HTML в Div в:

<div class="row"> 
    <div class="new-contact clearfix invite"> 
      <div class="first-name invite"> 
       <input type="text" id="firstName1" class="signup-input firstName required" name="first[1]" placeholder=""> 
      </div> 
     <div class="last-name"> 
       <input type="text" id="lastName1" class="signup-input lastName" name="last[1]" placeholder="optional"> 
      </div> 
       <input type="text" data-index="1" id="inputMail1" class="signup-input mail" name="email[1]" placeholder="e.g. [email protected]" aria-invalid="true"> 
       <span class="common-sprite sign-up-cross first clone"></span> 
      </div> 
    </div> 

</div> 
+0

Пожалуйста, разместите код HTML. –

+0

Метод '.valid()' не является частью библиотеки jQuery, и ни один из ваших элементов не содержит класс '.invitePartners'. Пожалуйста, исправьте свой ОП, чтобы он имел больше смысла. – Sparky

+0

Если вы используете плагин jQuery Validate, я предлагаю вам тщательно просмотреть документацию, так как ** не нужно ** писать собственные обработчики событий 'blur' для достижения валидации. Плагин полностью выполняется автоматически. – Sparky

ответ

0

Цитата из JQuery страницы on справки:

фокус и размытие события задаются W3C, чтобы не пузыриться, но jQuery определяет кросс-браузер focusin и focusout события, которые делают пузырь.

Это означает, что ваше мероприятие размытости не идут вверх DOM при выстреле из .new-contact.clearfix.invite и поэтому не может быть догнать по .invite

+0

Я понимаю. Но что я могу сделать вместо этого? –

+0

вы можете использовать ** focusin ** и ** focusout ** instread of ** blur ** –

+0

он не работает хорошо также с foucusout –

0
$('body').on('blur','.new-contact.clearfix.invite input', function() { 
    $('.invitePartners').valid() 
}); 
+0

Rajiv007- Я не хочу ввода –

+1

, у вас может быть только размытие событий на «входы» не на «divs». – Rajiv007

+0

Rajiv007- foucusout также не работает –

0

Попробуйте .focusout() ...

$('.new-contact.clearfix.invite').focusout(function() { 
    $('.invitePartners').valid(); 
}); 

Это не совсем понятно, каковы ваши элементы, вы должны опубликовать свой HTML-код в своем вопросе. Если вы просто пытаетесь использовать элементы, связанные с элементом, размыты, вам может потребоваться использовать что-то вроде ...

$('.invitePartners', this).valid(); 
+0

действительный() происходит даже тогда, когда я перемещаюсь между входами в том же div-not good –

+0

OK, тогда я не понимаю, что вы просите. Размытие или фокусировка будут возникать всякий раз, когда элемент теряет фокус.Какое поведение вы хотите? –

+0

Пожалуйста, разместите свой HTML-код –

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