2016-05-24 2 views
0

Я создал функцию для электронной почты.Вызов функции JS с полями Django

Вот код

$('#id_email.form-control').keyup(function(){ 

    $('span.error-keyup-email').remove(); 
    var inputVal = $(this).val(); 
    var emailReg = /^([\w-\.][email protected]([\w-]+\.)+[\w-]{2,4})?$/; 

    if(!emailReg.test(inputVal)){ 
     $(this).after('<span class="error error-keyup-email">Invalid Email Format.</span>'); 
    } 
}); 

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

Я знаю, что это базовый, но я не знаю, как назвать эту функцию для другого поля.

P.S. Я работаю в django framework, если у вас есть решение в представлении или шаблоне, я могу дать вам более подробную информацию.

+0

try 'var allInputs = $ (": input ");' –

ответ

0

Отбросьте идентификатор тега #id_email и сделайте его классом: .email, чтобы у вас было более одного в документ.

$('.email.form-control').keyup(function(){ 

В обработчике, у вас есть доступ к DOM объекта, где материал произошло через this. И вы можете получить доступ ко всем своим предкам.

var form = $(this).parents('form'); 

Это будет пройти через предок элемента, где keyup произошло, пока он не найдет <form> тега.

Оттуда вы можете получить доступ ко всем остальным, относящимся к одной форме, где произошло событие keyup.

$(form).find('span.error-keyup-email').remove();