我使用HTML5表單標記作爲內置的客戶端驗證程序,但我不希望它提交一個東西,因爲我剛纔一個Javascript函數來運行。停止HTML5表單發佈,刷新或打開一個新窗口onSubmit
如何停止表單的Post方法。
乾杯 - 凱斯
我使用HTML5表單標記作爲內置的客戶端驗證程序,但我不希望它提交一個東西,因爲我剛纔一個Javascript函數來運行。停止HTML5表單發佈,刷新或打開一個新窗口onSubmit
如何停止表單的Post方法。
乾杯 - 凱斯
添加回報虛假的函數調用後,像這樣:
<input .... onclick="function();return false;" />
,或者你可以只返回真/假從功能上,像這樣:
<input .... onclick="return function()" />
感謝您的回覆。好吧,停止提交過程,但現在驗證似乎不起作用。有任何想法嗎? – 2012-01-06 10:54:55
不確定,添加代碼不應該阻止你的函數完全運行。檢查函數是否正在運行(可能會添加一些調試代碼),並確保該函數返回true/false,如果您使用底部示例。 – Tom 2012-01-06 10:56:27
如果你使用jQuery你可以這樣做:
$('#your_form_id').submit(function(e){
e.preventDefault();
// do your staff
});
你也可以做到這一點沒有一個框架:
document.getElementById('your_form_id').addEventListener('submit' function() {
// do your staff
return false;
});
在「//做你的員工:」你可以寫你的Ajax代碼。
中的onsubmit屬性添加到您的窗體標籤:
<form onsubmit="return myfunction()">
確保你返回一個布爾爲你的函數
function myfunction() {
// do your validation
if (validation.passes) { // you will need to change this line !!!
return true; // to submit
} else {
return false; // to prevent submit
}
}
一個onsubmit處理添加到您的形式,例如
<form method="POST" onsubmit="return sendForm();">
然後定義功能,並添加虛假的返回值:
function sendForm() {
//do your ajax request...
return false;
}
我傾向於選擇離開我的功能,因爲它們和添加return false來onsubmit處理程序,例如:
<form onsubmit="aFunction(); return false;">
我已經嘗試各種解決方案,但它仍然重新加載AJAX處理後的頁面:
<form id="form2" method="POST" onsubmit='sent(); return false;' >
function sent(){
$.ajax({
...
});
}
是jQuery的一個選項?或生js? – Dunhamzzz 2012-01-06 10:45:06