2016-02-18 101 views
5

我讀過幾篇文章,其中包括thisthis,但我似乎無法在提交後清除輸入字段。什麼是最基本的/基本的方式來做到這一點?如何重置輸入字段? jQuery

目前我有這樣的:

$(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> 
+0

一行代碼來處理所有的字段'$(formselector)[0] .reset段();' –

回答

11

相反的復位,使用這段代碼只是設置一個空白值輸入字段:

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

爲了重置特定形式的所有輸入,您還可以使用以下代碼(使用:input選擇器):

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

謝謝,這工作。作爲一個側面的問題,你知道爲什麼選擇器應該是'input [name = checkListItem'而不是'form [name = checkListForm'? – AlanH

+0

@AlanH:因爲你想將輸入的值設置爲空白,而不是表單的。 – Przemek

+0

@AlanH:這是因爲'input'選擇器基本上選擇了一個表單控件,它有一個可以設置的值,而''('form')''基本上意味着你選擇了一個html元素本身而不是表單控件,因爲'$('form')'不具有不同於'input'選擇器的value屬性,請參閱我最近編輯的答案。 – stark

0

這應該工作,(我自己測試過)。

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

這一個爲我工作;很少修改。我用function(e)e.preventDefault()和使用$('input[name=checkListItem').val('');,而不是重置()的

<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> 
0

我們可以提交後寫。

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