2010-01-13 5 views
0

Пытается получить текущие данные из textarea с jquery и заменить его на то, что возвращает сервер. до сих пор q значение подобран правильно, вместо того, чтобы обновить его с сервера возвращенного контента, он просто заменяет его ' 'Обновить текстовое поле с jquery

q = $('textarea#id_message').val(); 
alert(q) 
$("textarea#id_message").val(' ').load('/process/url?html=' + q); 

Update

Я просто попытался его передачи данных сервера, чтобы проверить результаты <div>, это делает работа, <textarea> нет.

$('#results').html('&nbsp;').load('/process/url?html=' + q); 
+0

Что делает 'alert (q)' show? – Skilldrick

+0

предупреждение (q) отлично работает, оно отображает данные textarea – bocca

+0

Введите в браузере yourdomain.com/process/url?html=[whatever q is и посмотрите, не получите ли что-нибудь обратно. – Skilldrick

ответ

0

Я предполагаю, что команда load терпит неудачу, потому что вы передаете значение текстового поля в качестве параметра GET без каких-либо санитарных условий.

escape(q)может справка, но нам нужно знать, что происходит на стороне сервера, чтобы точно сказать.

+0

побег (q) не работает, серверная сторона, похоже, работает нормально – bocca

+0

Можете ли вы показать примерное значение q? –

+0

<тип стиль = "текст/CSS" СМИ = "экрана"> р { \t поле: 0px 0px 6px 0px; \t font-size: 12px; } Q возвращает значение

Привет, мир!

bocca

0

Интересно, вызывает ли проблема val(). Это работает, если вы полностью удалите .val('&nbsp;')?

+0

удаление .val (' ') не работает ни – bocca

0

Не следует ли использовать текст или функцию html вместо val для textarea? AFAIR textarea не имеет атрибута val. Это просто <textarea>Text inside textarea</textarea>

1

Это происходит потому, что при использовании .load() на элемент, вы вызываете .html() на том же элементе позже to put the response in there (jQuery core source code here), но это не работает на входах, необходимо .val(). Чтобы сделать это, вы можете использовать $.get() с обратным вызовом, например:

var val = $('#id_message').val(); 
$.get('/process/url?html=' + val, function(data) { 
    $('#id_message').val(data); 
}); 

Вы также можете санировать вход, если сервер принимает POST, передавая Params как объект, как это:

$.get('/process/url', {html: $('#id_message').val()}, function(data) { 
    $('#id_message').val(data); 
}); 
Смежные вопросы