尝试使用表单reset()函数重置输入字段但不能正常工作

时间:2016-12-09 13:28:05

标签: javascript html5 function reset codepen

我试图创建一种发布系统并且它在大多数情况下都有效,但是当单击发布按钮时,输入字段不会被重置。我尝试了一些不同的方法,但没有一个工作,所以这是我尝试的最后一个(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 个答案:

答案 0 :(得分:3)

您的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/>";
}
  

注意: 您的所有ID看起来都很相似,这可能会让开发人员或看到您代码的人感到愤怒。这是你的意图吗?