我有text area
绑定了.change()
处理程序。在更改时,它会强制执行ajax调用以保存一些数据。在页面的另一部分,还有一个带有提交按钮的表单。
期望的行为是,如果用户键入文本区域,然后鼠标在提交按钮上并单击,则进行ajax调用,然后提交表单。
似乎正在发生的事情是按钮上的click
会触发change()
事件,但不会发生任何点击。
有什么建议的解决方法吗?
更新:
$('#content').click(function(event) {
console.log("content clicked");
});
$('input#order_is_gift').change(function() {
console.log("change", event);
f.cart.set('is_gift', $('input#order_is_gift').prop('checked'));
f.cart.save();
});
$('textarea#order_gift_text').change(function(event) {
console.log("change", event);
f.cart.set('gift_text', $('textarea#order_gift_text').val());
f.cart.save();
});
更多信息: 我认为问题基本上是这里提到的问题:Blur event stops click event from working?
在最好的情况下,我会阻塞,直到save()返回,这可能会解决问题。
答案 0 :(得分:1)
使用此 -
json
而不是这个 -
$('#content').mousedown(function(event) {
console.log("content clicked");
});
答案 1 :(得分:0)
我不确定我对你的问题完全清楚。
理想的行为是,如果用户键入文本区域,然后鼠标在提交按钮上并单击,则进行ajax调用
所以你只想在单击按钮时触发ajax?更改现场数据后不会立即?如果是这种情况,您的更改处理程序中的代码应该在您的单击处理程序中,您根本不需要绑定更改。
至于点击本身没有发生,你的意思是表格没有提交吗?或者你没有点击下面的一行?
console.log("content clicked");
如果是后者,您确定'内容'是您按钮的ID吗?如果表单没有提交,请确保您的点击处理程序没有返回false