提交表单而不触及更新或提交按钮

我有一个表单,只要对表单中的某个字段进行了一些更改,而无需用户点击更新或提交按钮,我就需要提交表单。

我熟悉AJAX,我可以通过AJAX获取表单,但是我现在需要将其更改为在用户在某个字段中键入内容时立即提交表单

目前,我在每个输入字段上放置了.keydown() ,尽管它可以工作,但是这使得脚本很长,我想知道是否有更好的方法来处理它。 这是我正在做的个别领域检测变化

if ($("#some_field").length) {
    var timer = null;
    $('#some_field').keydown(function () {
        clearTimeout(timer);
        timer = setTimeout(update, 1000)
    });

    function update(){
        $.ajax({
            ...
            ...
            ...
    }
});
}
}

我会非常感谢这里的任何帮助。


创建你想用来处理表单提交的函数。 它让你有机会决定是否要使用ajax或默认表单提交:

function submitForm() {
   var form = $(this).closest('form')[0];
   form.submit();
   //or $.ajax( ... );
}

然后,对所有输入元素使用一个选择器:input例如:input或普通类,并使用input事件,即使用户将文本粘贴到其中一个输入时也会捕获:

$(':input').on('input', submitForm);

UPDATE

要收听jQuery UI datepicker事件,请按以下方式添加change事件:

$(':input').on('input change', submitForm);

function submitForm() {
        var form = $(this).closest('form')[0];
        alert( 'About to submit form to ' + form.action );
       //form.submit();
       //or $.ajax( ... );
    }

    $(':input').on('input', submitForm);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<form action="/form/update.php" method="post">
  Field 1: <input type="text" name="field1"/><br>
  Field 2: <input type="text" name="field2"/><br>
  Field 3: <input type="text" name="field3"/><br>
</form>

$('.class-of-your-inputs').change(function(){
   $("#you-form").ajaxSubmit({url: 'you_path.php', type: 'post'})
});
链接地址: http://www.djcxy.com/p/96931.html

上一篇: submitting a form without hitting the update or submit button

下一篇: Multiple events to trigger same function but with different elements