绑定jQuery更改函数以提交函数

时间:2012-09-27 20:32:21

标签: javascript jquery event-handling jquery-validate jquery-forms-plugin

我无法在更改输入时触发表单提交。我想我需要事件处理,但我从来没有真正了解那是什么。

这是我的HTML:

<form action="/upload">
  <input type="file" name="file">
</form>

这是我的JS:

$('input').change(function(e){
var closestForm=$(this).closest("form");
    closestForm.submit(function(e) {   
  closestForm.ajaxSubmit({   
              success: function(data){
                    console.log('form submitted successfully');
              }
      }); //ajaxSubmit
    return false;
  }); //submit 
}); //change

请注意我想使用AJAX进行提交,但这不是问题,因为我有我的代码库的其他部分,我可以使用jQuery Form plugin ajaxSubmit()没有问题

思想?

3 个答案:

答案 0 :(得分:2)

由于您希望在输入更改时提交表单。您不需要在表单上提交活动

 $('input').change(function(e){
    var closestForm=$(this).closest("form"); 
      closestForm.ajaxSubmit({   
                  success: function(data){
                        console.log('form submitted successfully');
                  }
          }); //ajaxSubmit
        return false; 
    }); //change

答案 1 :(得分:0)

您可以尝试“锁定”表单提交,直到字段填写完毕,如下所示:

var form_locked = true;

$("input").change(function(e){
    if($(this).val() == "") {
        form_locked = true;
    }else{
        form_locked = false;
    }
});

$("form").submit(function(e) {

    // prevent default form submit
    e.preventDefault();

    if(form_locked) {
        alert("Please fill in the field!");
    }else{
        // Do your form submission stuff here
    }

});

答案 2 :(得分:0)

我在我收到的错误消息后解决了我自己的问题,导致了以下SO Q&amp; A。 jQuery form plugin - Uncaught TypeError on file upload

我的错误消息与此类似:

jquery.form.js:357 Uncaught TypeError: 
Object function (a,b){return new d.fn.init(a,b,g)} has no method 'handleError' 

基本上,只要我下载了最新的jQuery Form插件js文件,我就可以删除submit()函数,只需使用ajaxSubmit()作为@Shusl建议。

非常感谢@Shusl让我走上正轨。