jQuery中submit()事件的事件委托

时间:2018-04-25 18:57:12

标签: javascript jquery ajax javascript-events event-handling

我在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一起工作,但从第二次重新加载页面。

1 个答案:

答案 0 :(得分:0)

我必须在第一次加载时以其他方式模拟AJAX行为,因为我正在使用$(this).parents('form').submit();,而Teemu在问题的评论中说,这不是AJAX。