jquery insertAfter или добавить вопрос - PullRequest
0 голосов
/ 27 мая 2010

Я играю с проверкой ввода формы.

Пока что я просто получаю удовольствие от отображения сообщения после ввода. Я использую метод after () для отображения простого текста, и когда я намеренно делаю ошибку в окне, я отображаю сообщение идеально.

Однако, если я намеренно совершаю ошибку снова, он сразу же добавляет то же сообщение после первого сообщения об ошибке.

Есть ли метод, который заменяет оригинал? Я не хотел пытаться добавить еще какой-нибудь код для поиска исходного сообщения об ошибке, удалить его, а затем снова вставить то же сообщение.

Я буду, если придется, но я подумал, что сначала спрошу.

Вот мой код:

<script language="javascript" type="text/javascript">
$(document).ready(function(){

  $("form#testform").submit(function(){
     if($("#fieldname1").val().length < 5){ $("#fieldone").after("<div>not enough characters</div>"); }
  });return false;


});
</script>

<form id="testform" method="post">         
<table>
    <tr>
        <td style="width:100px;">Field One:</td>
        <td><input type="text" name="fieldname1" id="fieldname1" /></td>
    </tr>
    <tr>
      <td>&nbsp;</td>
      <td><input type="submit" name="Submit" value="Submit" /></td>
    </tr>
</table>
</form>

Ответы [ 2 ]

0 голосов
/ 27 мая 2010

Я бы подумал, что делать что-то вроде этого было бы идеально:

$('#fieldname1').change(function()
{
     if($(this).val().length < 5 && $(this).parent().find('div').length == 0)
        $(this).after('<div>My Content</div>');
});

Вы ищите дерево у родителя (

), а затем, если вы нашли дочернего элемента div, вы знаете, что сообщение уже существует. Остальное, добавь это.

Теперь я думаю, что лучшим выбором будет структурировать ваш HTML немного по-другому, но это другое обсуждение.

0 голосов
/ 27 мая 2010

Вам нужно добавить идентификатор "fieldone" к элементу, к которому вы добавляете, он отсутствует в этом фрагменте кода, который вы опубликовали.

РЕДАКТИРОВАТЬ: Beamrider вы получили там первым :) + 1

...