【问题标题】:How to reset just texbox, not the entire page?如何仅重置文本框,而不是整个页面?
【发布时间】:2017-05-01 12:21:42
【问题描述】:

我正在尝试创建一个发布/评论系统。它完成了我想要的大部分工作。现在,我只想重置文本框,而不是整个页面。骨架代码由 CodePen 预设。 (更多解释代码示例)

HTML:

<form id="frmPost" name="write">
    <div class="textbox">
        <input class="postwriter" name="post" type="text" placeholder="What's on your mind?" id="txtPost">
        <button id="btnPost" onclick= "return write_below(this); resetText();" value="submit" >Post</button>
    </div>
</form>
<div class="posts" id="postDisplay">
    <p class="para"><span id='display'></span></p>
</div>

JS:

function resetText() {
    document.getElementById('txtPost').value="";
    //return false;
}
function write_below(form){
    var input = document.forms.write.post.value;
    //document.getElementById('display').innerHTML += input + "<br/>" + "<br/>";
    document.getElementById('display').innerHTML += "<p>" + Math.floor(Math.random()*20) + ": " + input + "</p>" + "<br/>";
    return false;
}

像这样,帖子被保留,但文本框被重置。如果我删除/注释掉第二个return false;,整个页面都会重置。

【问题讨论】:

    标签: javascript html reset posting


    【解决方案1】:

    为什么要编写冗长的 JavaScript 或 JQuery

    您可以使用“重置”类型放置清除按钮。它会在不重新加载网页的情况下清除您的所有表单字段。

    例如。

     <html>
            <body>
                   <form>
                            <input type="text" name="demo">
                            <button type="reset">Clear</button>
                             <button type="submit">Submit</button>
                     </form>
             </body>
      </html>
    

    【讨论】:

      【解决方案2】:

      您所要做的就是从write_below() 拨打resetText()

      function resetText() {
          document.getElementById('txtPost').value="";
      }
      function write_below(form){
        var input = document.forms.write.post.value;   
        document.getElementById('display').innerHTML += "<p>" + Math.floor(Math.random()*20) + ": " + input + "</p>" + "<br/>";
        resetText();
        return false;
      }
      <form id="frmPost" name="write">
        <div class="textbox">
          <input class="postwriter" name="post" type="text" placeholder="What's on your mind?" id="txtPost">
          <button id="btnPost" onclick= "return write_below(this);" value="submit" >Post</button>
        </div>
      </form>
      <div class="posts" id="postDisplay">
        <p class="para"><span id='display'></span></p>
      </div>

      【讨论】:

        【解决方案3】:

        当您单击提交按钮时,表单的默认操作是发出请求。如果您的&lt;form action=""&gt;&lt;/form&gt; 中没有指定目的地,则默认位置为"/"(当前页面)。这将重新加载页面。

        当您说return false 时,您正在向调用者(表单)返回一个错误值。这会拒绝表单正确提交,从而防止重新加载。

        return false;留在那里以获得您的结果。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-06-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-10-29
          • 1970-01-01
          相关资源
          最近更新 更多