JQuery - получить .html () после установки с помощью .html () - PullRequest
3 голосов
/ 02 декабря 2011

Я использую jQuery с силой localStorage.

Вот что у меня есть:

<textarea name="localStorageString" id="localStorageString"></textarea>
<script>
  var userJson = localStorage.getItem('userJson');
  $('#localStorageString').html(userJson);
  $('#localStorageString').keyup(function(){
    alert($(this).html());
});

textarea заполнен правильно, проблема в том, что, когда я изменяю его, он всегда предупреждает об одном и том же значении (устанавливается html(userJson)).

Есть идеи?

Ответы [ 5 ]

4 голосов
/ 02 декабря 2011

Вам нужно $(this).val(), чтобы получить значение элемента формы.

2 голосов
/ 02 декабря 2011

Я забыл это.Почему .html() не работает?

html() - это встроенная функция JavaScript .innerHTML.Он принимает все (все узлы) внутри тега как строку.

<div id="Node">
   <a href="#">Hello</a>
</div>
console.info($('#Node').html()); // <a href="#">Hello</a>

val() - это form.element.value.

2 голосов
/ 02 декабря 2011

Не используйте html(), используйте val().

1 голос
/ 02 декабря 2011

Попробуйте использовать .val() вместо .html().

.val(): http://api.jquery.com/val

.html(): http://api.jquery.com/html

1 голос
/ 02 декабря 2011

Простой: не используйте .html() для <textarea> (или других элементов формы). Используйте .val() (или .value).

$('#localStorageString').val(userJson)
.keyup(function() {
    console.log(this.value);
});

http://jsfiddle.net/mattball/Zz2cF/

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