jQuery表单onchange并提交

时间:2013-12-17 06:57:59

标签: jquery

我想仅在用户更改输入值或点击输入值时才在表单上进行ajax调用。

我遇到的问题是,在输入中按Enter键会提交一个进行ajax调用的表单,并且还会发生onchange事件并触发ajax调用。

这是我到目前为止所拥有的:

$(document).on 'change', '.painter-edit :input', ->
    $(this).closest('form').submit()

是否可以同时提交输入更改和提交触发器?

2 个答案:

答案 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 
});

Here is a Fiddle

答案 1 :(得分:0)

您需要捕获keypress事件,确定它是否为字符13(“enter”),然后执行ajax调用。

如果你正在为两者执行相同的ajax,那么你应该在函数中抽象ajax调用,然后从这段代码和你已经使用的onchange代码调用函数。

$(document).keypress(function(e) {
  if(e.which == 13) {
    // call the ajax function
  }
});