我在jQuery代码中有这个:
$(this).parents('form').submit();
问题是第一次没有重新加载页面时它工作但是从我第二次调用它时,页面被重新加载。我正在阅读Why does Ajax work correctly on first request, but returns partial view on new page on second request?,并说:
"仅限第一次工作"行为是典型的动态添加内容的情况,但事件直接绑定到元素(例如,在DOM就绪)。
我正在尝试做类似的事情来为表单submit()事件使用事件委托:
$(document).on('submit', 'form', function(){
// Something here?
});
但是我不确定要放在那个函数()中,因为我需要的是提交表单但是使用AJAX以便不重新加载页面,这几乎是我第一次用{{{ 1}}。有任何想法吗?谢谢。
更新1:
这是选择框的触发器(onChange事件尝试提交表单):
$(this).parents('form').submit();
当我更改值以从选择框中选择操作时,我收到以下消息:$(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('');
}
}
});
第一次使用AJAX(提交表单)完成所有操作。但从第二次,它正常工作,但它重新加载页面。它应该在没有重新加载页面的情况下始终使用AJAX,而不仅仅是第一次。这特别是为提交表单而执行的行:
Are you sure you want to do this action?
我试图理解为什么同一行,它第一次与AJAX一起工作,但从第二次重新加载页面。
答案 0 :(得分:0)
我必须在第一次加载时以其他方式模拟AJAX行为,因为我正在使用$(this).parents('form').submit();
,而Teemu在问题的评论中说,这不是AJAX。