textarea не обновляется - PullRequest
       7

textarea не обновляется

8 голосов
/ 31 января 2012

С помощью jQuery я добавил текстовое поле

$('#description').append('<textarea rows="8" cols="40">test</textarea>');

ОК, и я изменил текст "test" на "test 01".Но, когда я пытаюсь

 var cadena = $('#description').text();
 alert(cadena);

, я получаю «тест», а не «тест 01».Почему?

Ответы [ 4 ]

9 голосов
/ 31 января 2012

Как сказано на странице .text() doco , «Чтобы установить или получить текстовое значение для элементов ввода или текстовой области, используйте метод .val()».

Вы не говорите, как вы изменяете текст, но вы должны делать это:

$('#description textarea').val("test 01");        // change the text

var cadena = $('#description textarea').val();   // retrieve the current text

Отметив, что "#description" является контейнером текстовой области, и вам нужно выбрать саму текстовую областьчтобы получить значение.Конечно, вышеприведенное не сработает, если в этом контейнере более одной текстовой области, поэтому было бы лучше, если бы вы могли назначить новой текстовой области идентификатор и затем выбрать на основе этого.

8 голосов
/ 31 января 2012

присваивает textarea идентификатор и затем изменяет его значение с помощью функции val:

$('#description').append('<textarea id="xxx" rows="8" cols="40">test</textarea>');    
$('#xxx').val('test01');

//... later on
alert($('#xxx').val());
3 голосов
/ 31 января 2012

Пользователь .val() вместо .text().

Если вы добавили только одну текстовую область , вы можете сделать

 var cadena = $('#description textarea:first-child').val();

Контрольный пример: http://jsfiddle.net/UzK59/

OR

Если вы добавляете более чем одну текстовую область

 var counter = 0;
 $('#description').append('<textarea id="textArea'+ counter +'" rows="8" cols="40">test</textarea>');
 counter++;

, а затем

 $('#textArea' + counter).val(); //Considering counter is 0 (Zero) here

Контрольный пример: http://jsfiddle.net/UzK59/1/

Для установки значения вы можете сделать

 $('#textArea' + counter).val('New Value')

Надеюсь, это поможет вам.

3 голосов
/ 31 января 2012

Похоже, вы захотите сделать это:

$('#description').append('<textarea id="newTextArea" rows="8" cols="40">test</textarea>');¬ 

А потом вот это:

var cadena = $('#newTextArea').text();
alert(cadena);

В противном случае вы просто добавляете textarea внутрь того, что есть #description, а затем пытаетесь получить значение .text ... всего этого (что бы это ни было).

Если вы добавите id к textarea, вы можете быть более точным со своим выбором и получить искомое текстовое значение.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...