2013-12-17 88 views
0

我只想在用户更改输入值或命中输入输入值时在表单上进行ajax调用。jQuery表格onchange并提交

我遇到的问题是,在输入提交输入提交表单,使ajax调用,并且onchange事件发生并触发ajax调用。

这是我到目前为止有:

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

是否有可能有两个输入变化,并提交触发提交?

+0

你想赶上'keydown'事件进入并在那里改变它。 –

回答

1

防止万一的返回键抛出,并添加自己的功能:

$(window).keydown(function(event){ 
    if(event.keyCode == 13) { 
     event.preventDefault(); //this prevents your submit 
     //make your ajax call here 
     return false; 
    } 
    }); 

对于平变化,你可以用jQuery选择做:输入这样的:

$(':input').on('change', function(){ 
    //make your ajax call here 
}); 

Here is a Fiddle

+0

这也将听取改变? – Brian

+0

不,您需要的更改事件另外,我会将其附加到每个输入字段。 – Igle

+0

我为change事件添加了一个提议,您还可以在keydown事件中使用jQuery触发器函数来调用onchange事件 – Igle

0

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

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

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