2013-07-23 3 views
2

Это должно быть просто, но я понятия не имею, что не так. Я делаю ajax-вызов, когда есть onblur событие в текстовом поле. Запрос Ajax отправляется на сервер и получает ответ. Затем я должен добавить этот ответ рядом с текстовым полем. Но это не работает.
HTML

<input type="text" required="" id="123456" onblur="validateWithDB(this)"></input> 

Javascript

function validateWithDB(field) 
      { 
       $.ajax({ 
        type:"POST", 
        url:"validate", 
        data: "fieldValue="+field.value, 
        success: function(response) { 
         alert(response);// this is correct 
         alert($(field).val());// this is correct 
         var result = '<span class="help-inline">'+response+'</span>' 
         alert(result) // this is correct 
         $(field).html(result);// Does not show up. 
        }, 
        error:function (xhRequest, ErrorText, thrownError) { 
         alert('Error: ' + ' ' + xhRequest); 
        } 
       }); 
      } 

Я попытался как $(field).html(result); и $(field).append(result);, но не повезло.

+3

Вы не можете поместить пролет в вход ... – tymeJV

+0

Какова ценность поля? –

+0

Но он может помещать текст во вход: D – Sergio

ответ

4

Если вы хотите промежуток СЛЕДУЮЩИЙ к входу, используйте .after()

$(field).after(result); 
+0

Спасибо. Это сработало для меня. –

3

Попробуйте это:

$(field).val(result); 

Если вы хотите добавить срок после использования ввода этого:

$(field).after(result) 
+1

Это приведет к стиранию введенного пользователем значения с помощью HTML, а не покажет сообщение об ошибке рядом с ним. – Rup

+0

@Rup +1 для «стирать». HTML гораздо веселее с военными метафорами. –

+0

@Rup вопрос не был правильным :) – Sergio

2

Как tymeJV asid в комментарии, вы не можете поместить HTML во входной тег.

Вы можете установить его как значение с помощью $(field).val(result), но это не имеет большого смысла.

Или вы можете вставить его после использования .after:

$(field).after(result); 

Это будет отображать HTML в результате непосредственно после ввода.

+0

'.insertAfter' вставляет' поле' после 'результата'. –

+0

Поле ввода исчезло, когда я использовал 'insertAfter'. –

+0

К сожалению, я имел в виду. После этого обновленный ответ. –

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