2013-05-21 23 views
1

最近在一個涉及一些簡單表單提交的網站上工作。 我決定通過jquery的.ajax()方法提交數據,而不是處理傳統經典的老派html方式(即表單標籤,帶有「action =」屬性,按鈕等)。JQuery選擇器細點

處理事情的方式,有必要明確明確的表格字段後,「提交」的。 假設實際的形式看起來是這樣的:

<form action="some_page.asp" id="my_form" method="post"> 

     <input type="checkbox" name="form_field" value="some_value" /> 
     <input type="checkbox" name="form_field" value="some_other_value" /> 
     <input type="checkbox" name="form_field" value="yet_another_value" /> 

     <input type="text" name="form_field" /> 

     <input type="hidden" name="form_field" class="MUST_NOT_CLEAR" value="" /> 
     <input type="hidden" name="form_field" class="MUST_CLEAR" value="" /> 
     <input type="hidden" name="form_field" class="MUST_CLEAR" value="" /> 
</form> 

現在,儘管形式,我真的不使用具有經典的「動作」屬性。我通過JQUERY .ajax()提交數據,因此必須在「提交」之後清除或重置表單域。

所以,真正的問題...怎麼會這樣代碼

$("#my_form").find("input:checkbox").removeAttr("checked"); 
$("#my_form").find("input:text").val(""); 
$("#my_form").find("input:hidden[class=MUST_CLEAR]").val(""); 

成功地清除了所有正確的領域,而這

$("#my_form").find("input:checkbox").removeAttr("checked"); 
$("#my_form").find("input:text").val(""); 
$(".MUST_CLEAR").val(""); 

不?

+0

你說的代碼不工作實際上適用於我:http://jsfiddle.net/EKE5w/ – Ramunas

回答

0

當重置表格你可以循環使用所有的田地,單獨設置它們,或者你可以重置窗體本身:儘管

$('#myform')[0].reset(); 

這可能不是直接回答你的問題,但它可能會有所幫助

編輯:如果你有,你不想要重置你可以將它們搬離<form>爲你收集的數據手動反正領域。所以如果你只留下字段,你需要在<form>內重置,然後重置表單很容易