javascript - 使用 jQuery 提交表单后停止页面重定向
问题描述
我有一个简单的代码,我尝试在不重定向页面的情况下发帖。到目前为止,我的代码如下所示:
$(function() {
$('#btn').on('click', '.document', function(e) {
e.preventDefault();
$.ajax({
type: 'post',
url: '/save',
data: {
html: '<p>Sucess</p>',
delay: 1
},
dataType: 'html',
success: function(data) {
console.log('success');
$('.document').append(data);
},
});
});
});
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<form action="/save" method="post" autocomplete="off" id="theForm">
<button id="btn" type="submit" name="send">
Send
</button>
</form>
<span class="document"></span>
有人可以帮我解决这个问题吗?我不知道为什么我的代码不起作用,我希望能够POST
不重新加载和重定向页面。
解决方案
您将委托事件处理程序附加到span
没有内容的 a ,并且主选择器不是 that 的父级span
。
正确的方法是将submit
事件处理程序附加到form
元素。
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.2.1/jquery.min.js"></script>
<form action="/save" method="post" autocomplete="off" id="theForm">
<button id="btn" type="submit" name="send">Send</button>
</form>
<span class="document"></span>
jQuery($ => {
$('#theForm').on('submit', e => {
e.preventDefault();
$.ajax({
type: 'post',
url: '/save',
data: {
html: '<p>Sucess</p>',
delay: 1
},
dataType: 'html',
success: function(data) {
console.log('success');
$('.document').append(data);
}
});
});
});
推荐阅读
- php - 我想显示字符串类型的数据是错误的。但它不是一起检查多个字段吗?
- node.js - 节点命令指的是旧版本
- java - 带有 .forEach 和 .add 的 Java ForkJoinPool
- quarkus - Quarkus 有 Spring AOP 模拟吗?
- javascript - 添加一个按钮以使用 Highchart 在图形和表格之间切换
- reactjs - React Router - 嵌套路由似乎不起作用
- fortran - 关于 Fortran 中 SGESV 语法的问题
- php - composer 需要 symfony/assets 安装
- asp.net - 无法在 MySql DbContext 的 dotnet ef 迁移中创建对象错误,但适用于 Sqlite DbContext
- javascript - 如何使用 JavaScript 在标准 HTML 文本中显示插入符号?