2015-08-18 105 views
0

我有一個正常的重置按鈕。爲什麼在觸發jquery之前需要點擊重置按鈕兩次?

<input type="reset" value="Reset" /> 

當按鈕被點擊時,應該有其他的jquery在同一時間的效果。

$('[type=reset]').click(function(){ 
    $('input[name=24hours]:radio').trigger('change'); 
    $(':checkbox').trigger('change'); 
}); 

的問題是,我需要在$('[type=reset]').click(function() jQuery的執行前兩次按下復位按鈕。爲什麼會發生這種情況,以及如何避免它?

編輯:這是jsfiddle。 https://jsfiddle.net/fdvr05s4/9/

+0

你可以重現這個上[的jsfiddle(http://jsfiddle.net) – Tushar

+2

做工精細** [這裏](http://jsfiddle.net/Guruprasad_Rao/p00xa1wL/)** –

+0

增加了jsfiddle。請查閱。謝謝 – BaimAT

回答

0

我在這裏看到的問題是,trigger('change')在窗體實際重置之前觸發。所以當你點擊重置時,它會觸發change,所以沒有任何反應,然後表單重置爲默認狀態。現在在第二次重置時,表單已處於默認狀態,因此change觸發器現在可以按照您的預期工作。

請嘗試此解決方案。利用這一點,我們確保的形式發射change之前已經復位:

$('[type=button]').click(function(e){ 
    e.preventDefault(); 
    $('form')[0].reset(); 
    $('input[name=yesno]:radio').trigger('change'); 
}); 

https://jsfiddle.net/fdvr05s4/10/

+0

就這樣!謝謝!。 – BaimAT

相關問題