如何获得我的AJAX响应以执行点击事件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获得我的AJAX响应以执行点击事件?相关的知识,希望对你有一定的参考价值。
我有一个要在表单上使用的ajax调用,因此用户不必重新加载页面,但它只会继续加载。我试图更改发布路线,但没有成功。有人可以指出我正确的方向。这是我的代码:
html
const http = new XMLHttpRequest();
const submit = document.querySelector('.submit');
http.onload = () => {
submit.addEventListener('click', () =>{
const alertMessage = document.querySelector('.alert');
const email = document.querySelector('#email').value;
const name = document.querySelector('.name').value;
if (name === '' || email === '') {
alertMessage.innerHTML = 'Name And Email Required';
console.log(name)
} else {
alertMessage.innerHTML = 'Success! Someone will be in touch with you soon!'
// email.value = '';
// form.reset();
}
});
}
http.open('POST', '/index.html', true);
http.send();
FORM
<div class="contactform">
<div class="alert"></div>
<form action="/index.html" method="POST" class="form">
<input type="text" name='name' id='name' placeholder="Name">
<input type="email" name='email' id='email' placeholder="Email">
<textarea class="messages" name="messages" placeholder="Message...."></textarea>
<button class="submit" type="submit" value="submit">Send</button>
</form>
</div>
答案
您需要重写表单的onsubmit事件以防止提交:
$("formSelector").bind('submit', function (e) {
var isValid = someYourFunctionToCheckIfFormIsValid();
if (!isValid) {
e.preventDefault();
return false;
} else {
jQuery.ajax({
type: "POST",
url: "my_custom/url",
dataType: "html",
data: { "text": jQuery("#edit-body").html()
},
success: function (result) {
console.log(result);
}
});
e.preventDefault();
return false;
}
});
通过致电
e.preventDefault();
return false;
您防止发生同步回发。
更新:如果您不想覆盖表单提交,也许可以将按钮放在表单标签之外(如果需要,可以使用CSS调整位置)?
以上是关于如何获得我的AJAX响应以执行点击事件?的主要内容,如果未能解决你的问题,请参考以下文章