1
我想在两个不同的地方为同一个窗体定义两个事件处理程序。jQuery多个事件处理程序和层次结构
modalPlaceholder.on('submit', 'form', function(e){
var url = $(this).attr('action');
var data = $(this).serialize();
$.ajax({
// ajax stuff
});
e.preventDefault();
})
这一个通过ajax发送表格。
$('body').on('submit', 'form', function(){
$(this).find('.hasPlaceholder').each(function() {
$(this).val('');
});
})
这一个是刚刚占位符零形式的价值观,所以他们不被发送到服务器实际值。
对于不在modalPlaceholder中的表单,此工作正常。但对于我想用ajax发送的表单,表单在发生调零之前会被序列化并发送。
有没有办法来定义事件处理程序被调用的顺序? 非常感谢。
看一看这一点,它可能会帮助: http://stackoverflow.com/questions/2360655/jquery-event-handlers-always-execute-in-order-they-were-bound-any-way-around-t – Bogdan 2012-02-21 13:07:28
感谢您的评论。问题是,从技术上讲,我不会将两个事件处理程序都附加到同一个元素上。第一个附加到body,第二个附加到modalPlaceholder。但是你的链接可能仍然有用。 – 2012-02-21 13:20:28
FrédéricHamidi明白了。你也可以使用占位符属性来代替你的JS解决方案,它在表单提交之前不需要任何清除。 – powerbuoy 2012-02-21 13:37:02