2015-06-15 75 views
1

我怎樣才能更改以下提交兩個blursubmit事件模糊並提交?

$('form').on('blur', 'input', function(event) { }); 
+0

你的意思是你想要的形式提交模糊? – AmmarCSE

+1

我希望表單在輸入更改(模糊時)時提交,並且*表單*時單擊表單提交按鈕。 – user4913694

+0

但是,當點擊表單提交按鈕時,它總是會默認提交 – AmmarCSE

回答

1

的功能更改爲named function expression,然後重新使用的定義,like this

var submitFunction = function(event) { 
    // stuff 
} 

$('input[type=text]').on('blur', submitFunction); 
$('input[type=submit]').on('click', submitFunction); 

而且,你不需要中間參數on() - 你可以只使用$功能爲目標的你想要的元素。這意味着您不會將點擊添加到窗體上的所有input元素。

1

您可以通過多個事件jQuery的on方法。

$('form').on('blur submit', function(event) { }) 

這意味着每當$('form')元素要麼一)模糊或b)遞交,事件處理程序將被調用。

+0

我試過這個,當輸入改變時它不會提交(在我的問題中爲'blur')。 – user4913694

+0

那麼,如前所述,當用戶點擊提交按鈕時,表單已經被提交,所以這是一種奇怪的功能要求。如果你想讓事件處理器提交表單,確保你在調用'$('form')。submit()'。 – Aweary

+0

@Aweary - 如果提交是AJAX,[本地存儲](https://developer.mozilla.org/en/docs/Web/Guide/API/DOM/),它將是自動保存表單內容的一種方式。存儲)可能是更好的解決方案 –

0

可以觸發模糊

$('form').on('blur', 'input', function(event) { 
    $('form').trigger('submit'); 
    // or $('form').submit(); 
}); 

,併爲您的表單提交提交

$('form').on('submit', function(event) { 
     // when form submit ... 
    });