javascript - jQuery 中 submit() 事件的事件委托
问题描述
我的 jQuery 代码中有这个:
$(this).parents('form').submit();
问题是它第一次工作时没有重新加载页面,但从我第二次调用它开始,页面被重新加载。我在阅读为什么 Ajax 在第一次请求时可以正常工作,但在第二次请求时返回新页面上的部分视图?它说:
“仅在第一次工作”行为是动态添加内容但事件直接绑定到元素(例如,在 DOM 就绪时)的典型情况。
我试图做这样的事情来为表单submit()
事件使用事件委托:
$(document).on('submit', 'form', function(){
// Something here?
});
但我不知道该放什么function()
,因为我只需要提交表单但使用 AJAX 以便页面不会重新加载,这几乎是我第一次使用$(this).parents('form').submit();
. 有任何想法吗?
更新 1:
这是选择框的触发器(onChange
事件尝试提交表单):
$(document).on('change', 'form select.js-admin-index-autosubmit', function() {
if ($('.js-checkbox-list:checked').val() != 1 && $(this).val() >= 1) {
alert(__l('Please select atleast one record!'));
return false;
} else if ($(this).val() >= 1) {
if (window.confirm(__l('Are you sure you want to do this action?'))) {
$(this).parents('form').submit();
} else {
$(this).val('');
}
}
});
当我更改值以从选择框中选择一个操作时,我收到此消息:Are you sure you want to do this action?
它第一次使用 AJAX 执行所有操作(提交表单)。但是从第二次开始,它可以正常工作,但会重新加载页面。它应该始终使用 AJAX 而不重新加载页面,而不仅仅是第一次。这特别是为提交表单而执行的行:
$(this).parents('form').submit();
我试图理解为什么同一行,它第一次与 AJAX 一起工作,但从第二次重新加载页面开始。
解决方案
我必须在第一次加载时以其他方式模拟 AJAX 行为,因为我正在使用$(this).parents('form').submit();
并且正如 Teemu 在对问题的评论中所说的那样,这不是 AJAX。
推荐阅读
- discord.js - 试图只为管理员提供踢球功能
- c# - 使用反射访问远程父类中的私有字段返回 null
- mule - Mule SDK 问题 - 无法使用 @MetadataKeyId 获取元数据的密钥
- templates - 如何将所选元素转换为透明对象
- java - 无法在子包中创建类的实例
- php - 如何在 Lumen 中自定义 ValidationException 响应?
- tensorflow-federated - 为什么 tensorflow 联合的性能比单个 Keras 模型差
- javascript - 当原点实际上相同时,如何解决“帧被阻止......跨原点..”错误?
- assembly - 如何使计时器起作用?启动后 5 秒调用 int 4ah
- python - 循环numpy数组v/s映射函数?