【问题标题】:How to reset input field? jQuery如何重置输入字段? jQuery
【发布时间】:2016-05-31 05:51:23
【问题描述】:

我已经阅读了几篇帖子,包括thisthis,但我似乎无法在提交后清除输入字段。最基本/最基本的方法是什么?

目前我有这个:

$(document).ready(function(){
    $('form[name=checkListForm]').on('submit', function() {
          // prevent the form from submitting
          event.preventDefault();
          var toAdd = $(this).find('input[name=checkListItem]').val();
          $('.list').append("<div class='item'>" + toAdd + "</div>")
          $('input[name=checkListItem').reset();
        });
});

我的 HTML 是:

<!DOCTYPE html>
<html >
  <head>
    <meta charset="UTF-8">  
    <link rel="stylesheet" href="stylesheet.css">     
    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script type="text/javascript" src="script.js"></script>
  </head>
  <body>
    <h2>To Do</h2>
    <form name="checkListForm">
      <input type="text" name="checkListItem" />
      <button type="submit" id="button">Add!</button>
    </form>
    <br/>
    <div class="list"></div>
  </body>
</html>

【问题讨论】:

  • 单行代码处理所有字段$(formselector)[0].reset();

标签: javascript jquery html


【解决方案1】:

不用重置,只需使用这段代码为输入字段设置一个空白值:

$('input[name=checkListItem').val('');

为了以特定形式重置所有输入,您还可以使用以下代码(使用 :input 选择器):

$('form :input').val('');

【讨论】:

  • 谢谢,成功了。作为一个附带问题,你知道为什么选择器应该是input[name=checkListItem 而不是form[name=checkListForm吗?
  • @AlanH:因为您想将输入的值设置为空白,而不是表单。
  • @AlanH :那是因为 input 选择器基本上选择了一个表单控件,并且它有一个可以设置的值,而 $('form') 基本上意味着您选择的是 html 元素本身而不是表单控件,因为 $('form') 没有与 input 选择器不同的 value 属性,请参阅我对答案的最新编辑。
  • 当您使用element[attribute=value] 过滤元素/节点时 - 即它会选择所有类型为element 然后从那些中,只有[attribute=value] 所以form[name] 找到所有具有名称属性的表单。如果你做了form [name](即带空格),那么它会在表单中找到所有具有 name 属性的元素。
  • $('input[name=checkListItem]').val('');你错过了 ']' ;)
【解决方案2】:

这应该可行,(我自己测试过)。

$(document).ready(function(){
    $('form[name=checkListForm]').on('submit', function() {
          //other code
          $('input[name=checkListItem]').val("")
        });
});

【讨论】:

    【解决方案3】:

    这个对我有用;很少修改。我使用function(e)e.preventDefault() 并使用$('input[name=checkListItem').val(''); 而不是reset()

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.2.0/jquery.min.js"></script>
    <script>
    
        $(document).ready(function(){
            $('form[name=checkListForm]').on('submit', function(e) {
                  // prevent the form from submitting
                  e.preventDefault();
                  var toAdd = $(this).find('input[name=checkListItem]').val();
                  $('.list').append("<div class='item'>" + toAdd + "</div>")
    
    
                  $('input[name=checkListItem').val('');
                });
        });
     </script>
    
    <h2>To Do</h2>
    <form name="checkListForm">
      <input type="text" name="checkListItem" />
      <button type="submit" id="button">Add!</button>
    </form>
    <br/>
    <div class="list"></div>
    

    【讨论】:

      【解决方案4】:

      提交后再写。

      document.getElementById("myform").reset();
      

      【讨论】:

        【解决方案5】:

        最后,这对我有用。

        $(document).ready(function(){
        $('#myForm').on('submit', function() {
        $('#checkListItem').val('');
        });
        });
                
        

        【讨论】:

          猜你喜欢
          • 2013-08-25
          • 2011-02-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-28
          相关资源
          最近更新 更多