我想攔截網頁上的特定表單的所有表單提交。它看起來非常簡單,jQuery:form.submit(function(e) {…})
,如果點擊提交按鈕,它的效果非常好。如何攔截表單可靠地提交?
但是也有一個選擇字段,不this.form.submit()
的OnChange屬性和它看起來像這樣的呼叫繞過我的聽衆(在鉻/火狐):
<script type="text/javascript">
function submitForm(e) {
window.alert('submitted');
e.preventDefault();
return false;
}
$(document).ready(function() {
$('#bar').submit(submitForm);
});
</script>
<form id="bar">
<select name="name" onChange="this.form.submit()">
<option>Foo</option>
<option>Bar</option>
</select>
<br/>
<input type="submit"/>
</form>
顯然,在上面的代碼,我可以只改變this.form.submit()
作爲我提交監聽器的具體參考。然而,在我的真實應用程序中並不那麼簡單,所以我正在尋找不需要修改onChange屬性的方式。
如果我沒有做一個愚蠢的錯誤,但其實這是預期的瀏覽器行爲,我會很高興,如果你能解釋事件流,爲什麼這會導致上述症狀。
哦,忘了提,「$(‘#條’)。提交()」,爲的onChange部分工程,以及。 JS是否對onX屬性執行某種「早期綁定」? – 2010-10-18 09:03:47