2016-09-04 4 views
-1

При использовании приведенного ниже кода для добавления элементов div и p внутри .container (с использованием значения в входах) элементы создаются и автоматически уничтожаются , Какие-нибудь идеи относительно того, что не так? Огромное спасибо!jQuery - .append добавляет элемент html, затем автоматически удаляется html

$("#submit").on("click", function(event){ 
    var textTitle = $("#title").val(); 
    var textContent = $("#content").val(); 
    $("#title").val(""); 
    $("#content").val(""); 
    $(".container").append("<div class='panel panel-default'><h4>" + textTitle + "</h4></div>"); 
    $(".container").append("<div class='panel panel-default'><p>" + textContent + "</p></div>"); 
    event.stopPropagation(); 
}); 
+0

Я предполагаю, что вы отправите форму, и вы не прекращаете отправку, поэтому страница перезагружается – Dekel

ответ

1

Звучит так, как будто ваш #submit является типом ввода = "submit" и отправкой формы. Потому что ваш выше код работает отлично, если не в теге формы.

Также будьте осторожны при использовании .append(), поскольку он будет отставать от браузера. Его всегда лучше всего сформировать все ваши элементы DOM в строку HTML, а затем использовать функцию добавления один раз.

JS Fiddle: https://jsfiddle.net/vxxu3uhw/1/

$("#submit").on("click", function(event){ 
     event.preventDefault(); 
     var textTitle = $("#title").val(), 
      textContent = $("#content").val(); 

     $("#title").add("#content").val(""); 

     var html = "<div class='panel panel-default'><h4>" + textTitle + "</h4></div>" 
       + <div class='panel panel-default'><p>" + textContent + "</p></div> 

     $(".container").append(html); 
    }); 

Ответить назад с более конкретными примерами вашей структуры в настоящее время, и я могу лучше помочь.

Если вы используете форму и тип ввода = "отправить", то добавьте event.preventDefault(), и вы не отправите форму.

+0

Спасибо большое! Форма была однозначно подана. Я думаю, я думал, что, поскольку я не включил метод или действие в форму, он не должен отправлять ... –

+0

Зачем вы делали $ («# title»). Add («# content»). Val (""); вместо просто $ ("# title"). val (""); и $ ("# content"). val (""); ? –

+0

Я думаю, что личные предпочтения. Хранение всех элементов, которые получают одно и то же лечение, группируются вместе. Другой способ был бы таким простым, как $ ("# title, #content) .val (" "); – googabeast

1

Использование event.preventDefault вместо event.stopPropogation, пусть это предотвратить работу по умолчанию формы представления.

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