我想仅在用户更改输入值或点击输入值时才在表单上进行ajax调用。
我遇到的问题是,在输入中按Enter键会提交一个进行ajax调用的表单,并且还会发生onchange事件并触发ajax调用。
这是我到目前为止所拥有的:
$(document).on 'change', '.painter-edit :input', ->
$(this).closest('form').submit()
是否可以同时提交输入更改和提交触发器?
答案 0 :(得分:1)
防止返回键抛出的事件并添加您自己的功能:
$(window).keydown(function(event){
if(event.keyCode == 13) {
event.preventDefault(); //this prevents your submit
//make your ajax call here
return false;
}
});
对于onchange,您可以使用jquery选择器执行此操作:输入如下:
$(':input').on('change', function(){
//make your ajax call here
});
答案 1 :(得分:0)
您需要捕获keypress
事件,确定它是否为字符13(“enter”),然后执行ajax调用。
如果你正在为两者执行相同的ajax,那么你应该在函数中抽象ajax调用,然后从这段代码和你已经使用的onchange代码调用函数。
$(document).keypress(function(e) {
if(e.which == 13) {
// call the ajax function
}
});