2010-01-13 13 views
4

我有一個簡單的表單,如下所示,我已將jQuery驗證插件添加到(http://docs.jquery.com/Plugins/Validation)。我在模態彈出窗口中有這種形式,所以如果出現錯誤,並且用戶在再次打開窗口時關閉窗口,表單仍然存在錯誤。在我的popup關閉回調函數中,我嘗試調用resetForm(),但它說方法不存在。重置用戶使用jQuery驗證插件時的表單

HTML表單:

<form class="validations" id="commentForm" method="get" action=""> 
    <p> 
    <label for="name">Name</label> 
    <em>*</em><input id="name" name="name" size="25" class="required" minlength="2" /> 
    </p> 
    <p> 
    <label for="email">E-Mail</label> 
    <em>*</em><input id="email" name="email" size="25" class="required email" /> 
    </p> 
</form> 

彈出關閉回調:

function(){ 
    $(this).find('form.validations').resetForm(); 
} 

在此先感謝您的幫助。

+0

我做不到爲你投票約翰,但你的回答最好!我按照描述做了,它爲我工作。作爲一個評論,我觀察到jQuery中有一個「$ .validator」,但它沒有resetForm()方法。驗證不會返回「驗證器」。證明是返回的對象沒有「$ .validator」所具有的方法。我覺得這有點奇怪,但這可能是在更高級別的jQuery(而不是js)上工作的代價。 – 2010-11-17 09:24:38

回答

9

resetForm是由validate方法返回的對象的一部分,而不是表單。例如:

var validate = $('#commentForm').validate({ ... }); 
// Later... 
validate.resetForm(); 
// Or if variable scope is in the way... 
$('#commentForm').data('validator').resetForm(); 

的驗證插件存儲到在窗體的數據存儲中的驗證對象的引用。

+0

THANK YUO !!!!!!!!!!! – JREAM 2012-03-09 23:57:27

+0

你是什麼意思「變量範圍是在路上」,你不能擺脫變量,只是做'$('#commentForm')。validate()。resetForm()'?請注意,如果驗證器已經初始化,那麼'.validate()'會返回'.data('validator')'。 – 2014-07-12 20:32:57

1

如果真的是一個簡短的形式,只需幾個元素,你可以簡單地用手點擊模態窗口上的關閉按鈕時重置它們,就像這樣:

$("input[name='formelementName']").val("");