2013-03-04 3 views
0

У меня возникла проблема с небольшим кодом jquery. Я пытаюсь вставить сообщение об ошибке в диапазон, но я думаю, что я не могу правильно определить диапазон.JQuery Validator Найти предыдущий элемент

вот мой HTML-код ...

<div>İsim <span style="font-size:9px;color:red"></span></div><div style="line-height: 3px">&nbsp;</div><div><input type="text" id="txt_isim" onkeypress="$('#txt_isim_4').val($('#txt_isim').val());" onKeyUp="$('#txt_isim_4').val($('#txt_isim').val());" style="width: 200px" class="blue_input required" minlength="3" /></div><div style="line-height: 6px">&nbsp;</div> 

здесь код JQuery

<script> 
    $(document).ready(function() { 
     $("#txt_isim").validate({ 
      submitHandler: function() { 
       return false; 
      }, 
      errorPlacement: function (error, element) { 
       error.appendTo(element.prev().parent("span")); 
      } 
     }); 
    }); 
</script> 

Я пытаюсь проверить "txt_isim" и отобразить сообщение об ошибке в пролете. но я думаю, что не смог найти диапазон с функциями PREV() и PARENT(). Что не так с моим кодом?

ПРИМЕЧАНИЕ. Если я даю идентификатор для пролета и помещает $ ('# id_span'), он отлично работает. Но мне нужно сделать это без ID. Пожалуйста, помогите

+0

, в котором пролет? это '' –

+0

Да, я хочу написать в

+1

вы будете можете добавить атрибут 'class' вместо id –

ответ

1

Вы можете попробовать это:

<script> 
    $(document).ready(function() { 
     $("#txt_isim").validate({ 
      submitHandler: function() { 
       return false; 
      }, 
      errorPlacement: function (error, element) { 
       error.appendTo(element.parent().prev().prev().children('span')) 
      } 
     }); 
    }); 
</script> 

Fiddle: http://jsfiddle.net/Hkkyp/1/

Но это не безопасный способ, потому что это зависит от вашего HTML структуры, а если добавить, например, еще один элемент между ваши divs, он больше не будет работать.

Я бы предпочел добавить класс к вашему диапазону, а не использовать селектор классов, чтобы добавить ваше сообщение.

+0

это не работает. –

+0

добавьте class = "error" в ваш диапазон, а затем выполните 'error.appendTo ($ (". Error "));' – bpoiss

+0

Но у меня будет этот кусок кода много раз. Поэтому мне нужно найти его в конкретном div –

0

В вас случае я рекомендовал бы вам иметь элемент контейнера для нескольких частей, относящихся к одному полю

<div class="field"> 
    <div>Isim 
     <span class="error-handler" style="font-size:9px;color:red"></span> 
    </div> 
    <div style="line-height: 3px">&nbsp;</div> 
    <div> 
     <input type="text" id="txt_isim" onkeypress="$('#txt_isim_4').val($('#txt_isim').val());" onKeyUp="$('#txt_isim_4').val($('#txt_isim').val());" style="width: 200px" class="blue_input required" minlength="3" /> 
    </div> 
    <div style="line-height: 6px">&nbsp;</div> 
</div> 

Тогда в errorPlacement

error.appendTo(element.closest('.field').find(".error-handler")) 

Демо: Fiddle

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