任何理由不使用AJAX我不知道?
有了它,您可以在不離開當前頁面的情況下請求或提交信息。在這種情況下,這聽起來很理想。我們可以以編程方式填寫表單上的輸入內容,提交內容,更改內容並再次提交 - 只要我們滿意即可。
下面是一個quick'n'dirty示例實現。
它打印到控制檯10次。
0
1
2
3
4
5
6
7
8
9
1. FormAction.html
<!DOCTYPE html>
<html>
<head>
<script>
"use strict";
function byId(id){return document.getElementById(id);}
function myAjaxPostForm(url, formElem, successCallback, errorCallback)
{
var ajax = new XMLHttpRequest();
ajax.onreadystatechange = function()
{
if (this.readyState==4 && this.status==200)
successCallback(this);
}
ajax.onerror = function()
{
console.log("AJAX request failed to: " + url);
errorCallback(this);
}
ajax.open("POST", url, true);
var formData = new FormData(formElem);
ajax.send(formData);
}
////////////////////////////////////////////////////////////////////////////////
window.addEventListener('load', onDocLoaded, false);
function onDocLoaded(evt)
{
byId('goBtn').addEventListener('click', onGoBtn, false);
}
var curIter = 0, maxIter=10;
function onGoBtn(evt)
{
byId('numberIn').value = curIter;
myAjaxPostForm('formAction.php', byId('mForm'), onAjaxDone);
function onAjaxDone(ajax)
{
console.log(ajax.responseText);
curIter++;
if (curIter < maxIter)
{
byId('numberIn').value = curIter;
myAjaxPostForm('formAction.php', byId('mForm'), onAjaxDone);
}
}
}
</script>
<style>
</style>
</head>
<body>
<button id='goBtn'>GO!</button>
<form id='mForm'>
<input type='number' id='numberIn' name='numberIn'/>
</form>
</body>
</html>
2. FormAction.php
<?php
echo $_POST['numberIn'] . "\n";
?>
即使這並沒有解決'form'將提交一次 – Mairaj
這是一個很好的點 – Smeegs
有了固定的那個傻傻的監督問題,當頁面刷新並重新輸入時,腳本可以繼承的任何方式? –