0
這裏是我的簡單的HTML表單& JS:提交按鈕(阿賈克斯)只能使用一次
<body>
<form>
<label for="usrtext">Enter text here:</label>
<br />
<textarea name="usrtext" id="usrtext" rows="25" cols="100"></textarea>
<br />
<button id="btn" type="button">Send</button>
</form>
<script type="text/javascript">
document.getElementById('btn').onclick = request;
function request()
{
var xhr = new XMLHttpRequest();
var usrtext = document.getElementById("usrtext").value;
xhr.open("GET", "sampleb.php?usrtext="+usrtext, true);
xhr.onreadystatechange = function(aEvt)
{
if (xhr.readyState == 4)
{
if (xhr.status == 200)
{
var temptxt = document.body.innerHTML;
document.body.innerHTML = temptxt + xhr.responseText;
}
}
}
xhr.send('');
}
</script>
</body>
這裏的PHP頁面(sampleb.php):
<?php
if (isset($_REQUEST["usrtext"]))
{
$output = $_REQUEST["usrtext"];
}
echo $output;
?>
我遇到的問題是當你在文本框中輸入文本並提交時,php頁面會獲取文本並將其正確地發回。但這只是第一次。如果我在文本框中輸入新文本並單擊提交按鈕,則ajax調用似乎不再有效。
我對此很新,但是我用console.log替換了'request',如果我多次單擊該按鈕,它將在Firebug中註冊。我也用一個annon函數取代了'request',這個函數帶來了一個警告框,並且在多個按鈕點擊時工作......我只是不知道爲什麼我的'request()'函數沒有被第二次調用。
啊,我現在明白了。那麼,爲了確認,當沒有新的頁面加載的情況下創建新的DOM樹時,瀏覽器不會再次執行HTML和JS? – Brownbay 2011-01-07 06:34:58