我使用$ .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,但没有标记为问题。 **可以使用吗?**是问题。 –