2017-02-12 15 views
0

Итак, я хочу, чтобы пользователь мог добавить новый абзац, когда он нажимает кнопку «Добавить». Я вижу, что он работает, когда я нажимаю кнопку, но после этого страница обновляется, а затем предположительно новый абзац исчезает.Добавление новых элементов в документ, но форма просто обновляется

Вот HTML код:

<!DOCTYPE html> 
<html> 
<head> 
<title>Item Lister</title> 
<link rel="stylesheet" type="text/css" href="default.css"\> 

</head> 
<body> 

<h1>ITEM LIST</h1> 

<div id="container"> 
<ol> 

</ol> 
</div> 

</br> 
<form> 
    <input id="txtbox" type="text" name="txt"/> 
</br> 
    <button id="add_btn" type="submit" name="add"/>Add</button> 
</form> 
<script src="myScript.js"></script> 
</body> 
</html> 

А вот его JS код:

add_btn.onclick = function(){ 
    var msg; 
    msg = document.getElementById("txtbox").value; 
    var newListElement = document.createElement("li"); 

    var liText = document.createTextNode(msg); 

    newListElement.appendChild(liText); 
    document.getElementById("container").getElementsByTagName('ol')[0].appendChild(newListElement); 


}; 

Как добавить новый элемент после нажатия на кнопку? Спасибо.

+0

Вы пытались использовать 'event.preventDefault();'? Пример https://jsfiddle.net/71k16o2o/ Я также изменил ваш '
' '' на '
' и удалил само закрытие на вашей' button' – NewToJS

+0

Или вы можете использовать атрибут onsubmit в теге формы. 'onsubmit =" return false; "Пример: https://jsfiddle.net/2Lss3fen/ – NewToJS

ответ

1

Удалить type="submit"

Edit: Оказывается, что только удаление представить атрибут не достаточно.

Он должен быть изменен на: type="button":

<button id="add_btn" type="button" name="add"/>Add</button> 
+0

Просто удаление' type = "submit" не работает. https://jsfiddle.net/43ktkm94/ – NewToJS

+0

Отредактирован ответ. –

1

Вы на самом деле, по крайней мере два варианта:

  • Удалить тип = "Submit", как Бюлент Vural уже упоминалось
  • Или возвращение false от вашего обработчика onClick