Попытка сброса поля ввода с помощью функции reset(), но не работающей
Я пытаюсь создать что-то вроде системы публикации, и она работает по большей части, но когда нажимается кнопка отправки, поле ввода не сбрасывается. Я пробовал несколько разных способов, и ни один из них не сработал, поэтому вот последний, который я попробовал (CodePen настраивает код скелета, чтобы это не было проблемой):
HTML:
<form id="post" name="write">
<div class="textbox">
<input class="postwriter" name="post" type="text" placeholder="What's on your mind?" id="myPost">
<button id="Post" onclick= "return write_below(this); return formReset();" value="submit" >Post</button>
</div>
</form>
<div class="posts" id="postDisplay">
<p class="para"><span id='display'></span></p>
</div>
JavaScript:
function write_below(form) {
var input = document.forms.write.post.value;
document.getElementById('display').innerHTML += "<p>" + Math.floor(Math.random()*20) + ": " + input + "</p>" + "<br/>";
return false;
}
function formReset(){
document.getElementById("post").reset();
}
1 ответ
Решение
Ваш onclick
выглядит так:
onclick="return write_below(this); return formReset();"
Что переводится как:
return write_below(this);
return formReset();
После первого возврата скрипт заканчивается. Так что убери первый возврат. Ваш код должен выглядеть так:
onclick="write_below(this); formReset(); return false;"
Сказав это, return false
здесь нет смысла, так что избавьтесь от этого.
function write_below(form) {
var input = document.forms.write.post.value;
document.getElementById('display').innerHTML += "<p>" + Math.floor(Math.random()*20) + ": " + input + "</p>" + "<br/>";
}
Примечание. Все ваши идентификаторы выглядят одинаково, что может сделать разработчиков или тех, кто считает ваш код сумасшедшим. Это твое намерение?