3 回答

TA貢獻(xiàn)1807條經(jīng)驗(yàn) 獲得超9個(gè)贊
只需處理Submit事件中的表單提交,然后返回false:
$('#contactForm').submit(function () {
sendContactForm();
return false;
});
您不再需要提交按鈕上的onclick事件:
<input class="submit" type="submit" value="Send" />

TA貢獻(xiàn)1818條經(jīng)驗(yàn) 獲得超8個(gè)贊
這里:
function submitClick(e)
{
e.preventDefault();
$("#messageSent").slideDown("slow");
setTimeout('$("#messageSent").slideUp();
$("#contactForm").slideUp("slow")', 2000);
}
$(document).ready(function() {
$('#contactSend').click(submitClick);
});
代替使用onClick事件,您將使用jQuery將“ click”事件處理程序綁定到j(luò)Query的Submit按鈕(或任何按鈕)上,這將以commitClick作為回調(diào)。我們將事件傳遞給回調(diào)函數(shù),以調(diào)用preventDefault,這將阻止單擊提交表單。

TA貢獻(xiàn)1831條經(jīng)驗(yàn) 獲得超10個(gè)贊
如果要查看顯示的默認(rèn)瀏覽器錯(cuò)誤,例如,由HTML屬性觸發(fā)的錯(cuò)誤(顯示在任何客戶端代碼JS處理之前):
<input name="o" required="required" aria-required="true" type="text">
您應(yīng)該使用submit事件而不是click事件。在這種情況下,將自動(dòng)顯示一個(gè)彈出窗口,要求“ 請(qǐng)?zhí)顚懘俗侄?”。即使preventDefault:
$('form').on('submit', function(event) {
event.preventDefault();
my_form_treatment(this, event);
}); // -> this will show up a "Please fill out this field" pop-up before my_form_treatment
正如有人前面所提到的,return false將停止傳播(即,如果有附加到表單提交更多的處理程序,他們就不會(huì)被執(zhí)行),但是,在這種情況下,由瀏覽器觸發(fā)的動(dòng)作總是會(huì)首先執(zhí)行。即使以a return false結(jié)尾。
因此,如果您想擺脫這些默認(rèn)彈出窗口,請(qǐng)使用click“提交”按鈕上的事件:
$('form input[type=submit]').on('click', function(event) {
event.preventDefault();
my_form_treatment(this, event);
}); // -> this will NOT show any popups related to HTML attributes
添加回答
舉報(bào)