2013-11-15 5 views
0

У меня есть элемент текстового поля. Я делаю валидацию для этого поля и должен динамически добавлять сообщение об ошибке в это поле. Функциядобавить div динамически после двух divs элемента

<div class="abc xyz"> 
    <input class="class1" type="text" id="test1" name="test1" value="test" title="Invalid input"/> 
    <div class="aux-content"><p>Aux content1</p></div> 
    <div class="aux-content"><p>Aux content2.</p></div>      
</div> 

JS

function validate(){ 
    var returnVal = true; 
    var input = $('#test1'); 
    input.next('div.error').remove(); 
    input.removeClass('wrong'); 
    input.removeClass('correct'); 
    if(input.val() == 0) 
    {  
     input.addClass('wrong'); 
     var title = input.attr('title'); 
     input.after('<ul class="error"><li>'+title+'</li></ul>'); 
     return false; 
    } 
    else{ 
     returnVal = true; 
    } 
    return returnVal; 
} 

('#subBtn').click(function(){ 
var retVal = validate(); 
}); 

$('#test1').blur(validate); 

В Validate (0 функция мне нужно проверить, если значение равно нулю. Если это так, мне нужно, чтобы отобразить сообщение об ошибке ниже DIV Aux Content2. Обучается свою отображающее ошибку только после того, как текстового поля. Но я хочу после Окса Content2. Как я могу это сделать?

Спасибо

+0

Просто поместите пустой DIV после DIV Aux Content2 и использовать, чтобы поместить ошибку в –

ответ

0

Здравствуйте, я бы это помогло;

if(input.val() == 0) 
    {  
     input.addClass('wrong'); 
     var title = input.attr('title'); 
     var _error_ul = $('<ul class="error"><li>'+title+'</li></ul>') 
         .insertAfter(input.nextAll(".aux-content:last")); 
    } 
+0

Хорошо ли это, если я напишу вот так, чтобы отобразить ввод ошибок .next(). next(). after ('

  • ' + title + '
'); и input.next(). next(). next ('ul.error'). remove(); удалить ошибку? – user1049057

+0

Я только что редактировал мой код (я не читал ваш вопрос задолго до: s – ilyass

+0

Чтобы удалить ошибку 'input.nextAll (" ul.error "). Remove()' – ilyass

0

попробовать что-то вроде этого

  if(input.val() == 0) 
      {  
       input.addClass('wrong'); 
       var parent = input.parent(); 
       var error_div = parent.find('.aux-content').eq(2); 
       var title = input.attr('title'); 
       error_div.html('<ul class="error"><li>'+title+'</li></ul>'); 
       return false; 
      } 
+0

Это хороший способ, если я пишу так, чтобы отобразить input.next ошибки(). Следующий(). После того, как (»

  • '+ title +'
'); и input.next(). next(). next ('ul.error'). remove(); удалить ошибку? – user1049057

+0

@ user1049057 Да, это способ, вы должны избегать этого, потому что, если вам нужно внести некоторые изменения в html, тогда ваш код javascript также должен быть изменен. поэтому вместо того, чтобы получить второй класс div apply на вашем div, поэтому с классом вы можете напрямую обращаться к div с ошибкой независимо от того, сколько div вы включаете или удаляете или изменяете порядок вашего div. –

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