2015-03-11 4 views
0

У меня есть таблица со входами и текстовыми полями внутри некоторых td. Эти входы и текстовые поля пусты, когда моя страница загружена. Затем я вводим текст внутри обоих входов и текстовых полей. Затем я сохраняю эту страницу в базе данных sql. Затем я могу загрузить эту таблицу по своему желанию. Когда страница загружается, я грубо нуждаюсь во всех текстовых «значениях» во всех вложенных и текстовых областях, которые нужно загрузить.Сохранение html потеряет значения внутри текстовой области

Я использую это в функции для сохранения всех значений входов.

$("input").each(function(){ 
    $(this).attr("value", $(this).val()); 
}); 

Работы хорошо. Но при попытке применить это к текстовой области, как показано ниже, не повезло.

$("textarea").each(function(){ 
    $(this).attr("value", $(this).val()); 
}); 

Когда я загружаю мой сохраненный HTML, мой текст область пуста, но значение = «» берет текст, хотя. Например, когда я загружаю пустую таблицу, textarea выглядит так.

<textarea value="" type="text"></textarea> 

После того, как я написал «привет» в текстовое поле, и спас мою HTML, я в конечном итоге с этим при загрузке его

<textarea value="hello" type="text"></textarea> 

Но фактическое текстовое поле пусто.

любые идеи?

ответ

2

Потому что textarea отличается от input, и текст идет в textarea сам по себе не в атрибуте.

Так, чтобы изменить/установить содержание текстового поля необходимо использовать $('textarea').val('hello'); или если он находится в $.each() затем $(this).val('hello');

не уверен, что я понял, что я должен там? - Adrien Boufflet 1 час назад

Я не знаю, как/когда вы применяете value в текстовое поле, но когда вы делаете, вы должны использовать .val('some text') вместо .attr('value', 'some text')

Я надеюсь, что это объясняет это лучше.

+0

Не уверен, что я понял, что я должен там есть? –

+0

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

0

Это решило мою проблему.

$("textarea").each(function(){ 
    $(this).attr("value", $(this).text(this.value)); 
}); 

получало .val() и не .text().

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