我有一個表格,可以通過AJAX或通常的方式提交,使用提交按鈕。阿賈克斯部分是在這裏:提交表格後重定向頁面
parentForm.onsubmit = function(e) { // e represents trigering event
if(srteValidateMode()){ // works only in WYSIWYG mode
var outputString = srteEditArea.innerHTML; // first we prepare the text output data
outputString = outputString
.replace(/<(\/?)strong>/gi, '<$1b>') // unify output tags for all browsers -> B I P (instead of strong em div)
.replace(/<(\/?)em>/gi, '<$1i>')
.replace(/<(\/?)br>/gi, '<p>')
.replace(/<(\/?)div/gi, '<$1p');
document.getElementById('simpleRTEoutput').value=outputString; // pass output string to hidden form field
if (srteAjaxSubmit) { // ajax version - filling FormData
e.preventDefault(); // canceling the submit function - we will call it with Ajax
var srteFormData = new FormData(e.target); // getting form data from submitted form
var ajaxRequest = new XMLHttpRequest(); // now going to invoke AJAX
ajaxRequest.onreadystatechange = function() {
if (ajaxRequest.readyState == 4 && ajaxRequest.status == 200) {
srteShowInfo(ajaxRequest.responseText); // return message and display as info window
}
}
ajaxRequest.open("POST", e.target.action); // getting target script from form action
ajaxRequest.send(srteFormData); // send FormData
}
else { // Standard submit
return true; // true = standard submit will proceed (works ok)
}
}
else {return false;} // on false return form will not be submitted
};
它工作正常。現在我想添加重定向功能 - 點擊另一個(非提交)按鈕,並使用一些onclick函數來保存(執行預定義的提交)並重定向。我有這樣的想法(未測試),但不確定這可能工作,尤其是在AJAX部分。在HTML
function srteSubmitForm(redirectTo) {
if (srteAjaxSubmit) { // redirect when submitted via Ajax Call
parentForm.submit(); // save form data
window.location.href = redirectTo; // change location - does it wait for previous function ?
}
else {
parentForm.action = parentForm.action + '?redirect=' + redirectTo; // rest handled by target PHP
parentForm.submit();
}
}
按鈕,然後將如下所示:
<input type="button" onclick="srteSubmitForm(\"somepage.php?page=A\")" value="Redirect A">
<input type="button" onclick="srteSubmitForm(\"somepage.php?page=B\")" value="Redirect B">
<input type="button" onclick="srteSubmitForm(\"somepage.php?page=C\")" value="Redirect C">
我不知道,如果我需要等待完成的AJAX不知何故前重定向?或者其他任何方式提交後如何重定向?
沒有jQuery解決方案,請。 謝謝,1月
如果您要重定向,你爲什麼要擺在首位需要AJAX,而不是隻是一個普通的形式提交重定向默認。 – adeneo
我希望Ajax在處理表單內容(文章)時保存表單。但也想添加按鈕的簡單鏈接(文章列表,預覽等) - 所以我想保存(通過ajax發佈)和重定向。也許我對適當的解決方案的想法並不是最好的,我只是想不出其他的。 – John