Удаление текста из textarea с помощью jquery ajax call не работает

0

У меня есть этот код, который работает, но только если кнопка нажата в первый раз:

<script> 

$(document).on("click","#btn-regenerate", function () {

        var something = "blablabla";
        $.ajax({
            type: "POST",
            url: base_url_admin + "sitemap/getcategories",
            data: {"something" : something},
            dataType: "json",
            success: function(msg){
              $("#categories").html(msg);
            },
            error: function(jqXHR, textStatus, errorThrown){ 
              alert(textStatus + " " + errorThrown);
            }
        });
});

</script>

Но после первого раза он не работает. Зачем? Я хочу, чтобы щелкнуть, чтобы удалить предыдущий контент в текстовом поле, и снова поставить вывод ajax (независимо от того, сколько раз я нажимаю кнопку). Но он работает только в первый раз. Затем, когда я, например, вручную удаляю часть содержимого в текстовом поле и нажимаю кнопку, ничего не происходит. Как это исправить? Что я делаю не так?

  • 0
    Вы также можете показать HTML?
  • 0
    Пожалуйста, предоставьте нам jsfiddle.net
Теги:

3 ответа

0
Лучший ответ

Вместо

$("#categories").html(msg);

попробуйте:

$("#categories").val(msg);
  • 0
    Вау, это работает; D. Не могли бы вы объяснить, почему html () можно использовать только один раз, а val () несколько раз?
  • 0
    .html() устанавливает непосредственно HTML-код в данном элементе, поэтому он работает для пустой textarea . После этого textarea наследует его как значение и охватывает HTML-код. Кроме того, если вы установите значение в нем вручную, он не изменит свой HTML-код (все еще только значение).
0

Я думаю, что #btn-regenerate вставлен после вызова ajax, поэтому вы должны связать событие click после него после вызова ajax

0

сначала удалите html-содержимое в $ ("# categories") как

 $("#categories").html(''); 

перед вызовом ajax, а затем добавьте содержимое html в ответ

$("#categories").html(msg);

Ещё вопросы

Сообщество Overcoder
Наверх
Меню