我使用$ .post加載註冊表單,下面是加載的代碼,之後該頁面使用XMLhtppRequest()發送表單數據並在同一頁面上返回響應,addEventListener第一次工作
第一次點擊註冊按鈕時,一切都很完美,但如果我想再次提交表單以防出現任何驗證錯誤,腳本將無法工作,並且整個頁面都會重新加載。
<form>
<input type="text" name="email" placeholder="Email" />
<button type="submit" id="register">Register</button>
</form>
<script>
var handleRegisterationProcess = function(event) {
event.preventDefault();
event.stopPropagation();
//console.log($("input.email").val());
var data = new FormData(document.forms.namedItem("register"));
var request = new XMLHttpRequest();
request.open('POST', 'url here');
request.setRequestHeader('Cache-Control', 'no-cache');
request.send(data);
request.onreadystatechange = function()
{
if (request.readyState === 4) {
$('selector here').html(request.responseText).show();
}
};
};
var register = document.getElementById('register');
register.addEventListener('click', handleRegisterationProcess);
</script>
我發現jQuery的! – adeneo
@adeneo你的意思是我必須使用JQuery來代替? – ahmedsaber111
@ ahmedsaber111不,你根本不需要使用jquery,但是如果你這樣做的話。與你使用它的方式保持一致,儘量避免混合香草js聽衆和隨意的jquery電話在這裏和那裏。另外,adeneo的評論意味着你有你的代碼中使用jQuery,但沒有標記爲問題。 **可以使用嗎?**是問題。 –