2013-11-15 72 views
0

嘗試通過按鈕單擊提交後清除表單。 '清晰的形式'jQuery在我測試的另一個項目中工作,但由於某種原因,它不會在這裏工作。 .validateEngine.LocalStorage.save功能都會觸發並正常工作。任何洞察力將不勝感激。使用jQuery重置/清除表單

function clicked (e) 
{ 
    if (confirm('Are you sure you want to submit?')) 
    { 
     if ($("#formID").validationEngine('validate')) 
     { 
      my.LocalStorage.save(); 

     //clear form 
      var $form = $("#form"); 
      $form.find('input:text, input:password, input:file, select, textarea').val(''); 
      $form.find('input:radio, input:checkbox') 
      .removeAttr('checked').removeAttr('selected'); 

    } 
} 
e.preventDefault(); 
} 

HTML

<form id="formID" name="myForm">  

<input class="validate[required]" type="text" id="agree" name="agree"/>   
<button type="submit" value="Save" id="Save" onclick="clicked(event);">Submit Survey</button> 

</form> 

回答

4

你有形式ID錯誤。變化:

var $form = $("#form"); 

到:

var $form = $("#formID"); 

此外,保存在選擇相同的形式兩次它將使感來移動變量聲明是if(confirm(...){裏面的第一線,像這樣:

function clicked (e) { 
    if (confirm('Are you sure you want to submit?')) { 
     var $form = $("#formID");     
     if ($form.validationEngine('validate')) { 
      my.LocalStorage.save();  
      //clear form 
      $form.find('input:text, input:password, input:file, select, textarea').val(''); 
      $form.find('input:radio, input:checkbox') 
       .removeAttr('checked').removeAttr('selected'); 
     } 
    } 
    e.preventDefault(); 
} 
+0

哈哈盯着它這麼久以後我忘了我不得不改變我的表單ID更早。謝謝! – user1

+0

我不確定我完全理解你的建議。如果我有多個文本框,有些不是必需的,如果驗證不會返回true,是否會刪除已填充的內容? – user1

+0

我並不是故意不清楚 - 我編輯了我的答案,以準確顯示我的意思是移動'var $ form'聲明。 – nnnnnn

0

致電$("#formID").reset(); 這是標準調用jquery重置表單。

+0

這似乎只是在嘗試時刷新頁面。 – user1