更改字段时提交AJAX表单

时间:2016-04-28 12:49:57

标签: javascript jquery ajax forms

我有一个GET表单,提交时使用 AJAX 请求来更新php页面。

我希望此表单在字段更改时自动提交,表单主要包含文本输入和一些下拉列表。

我尝试过:

onchange="this.form.submit()" - 这是有效的,但它不是将数据AJAX到php页面,而是实际上将我重定向到页面,这是不行的。

<input type="submit"> - 我希望这是最后的手段,因为我希望自动发送表单,但是它确实有用

我知道每次输入更改时发送一个表单通常都不是一个好主意,所以理想情况下我希望它在不活动后1-2秒发送表单(明显输入内容后) - 如果不可能,然后,每次更改字段都可以接受为低流量服务器。

所以我的问题是,通过ajax自动发送表单的正确方法是什么?

我的当前:

                     <form method="GET" id="submitRequest" action="showTable.php">
                        <th><input type="text" id="SSeries" name="SSeries" class="form-control"></th>
                        <th><input type="text" id="SModel" name="SModel" class="form-control"></th>
                        <th><input type="text" id="SSerial" name="SSerial" class="form-control"></th>
                        <th><input type="text" id="SColor" name="SColor" class="form-control"></th>
                        <th><input type="text" id="SStorage" name="SStorage" class="form-control"></th>
                        <th><input type="text" id="SCarrier" name="SCarrier" class="form-control"></th>
                        <th><input type="text" id="SType" name="SType" class="form-control"></th>
                        <th><input type="text" id="SUPC" name="SUPC" class="form-control"></th>
                        <th><input type="text" id="SStatus" name="SStatus" class="form-control"></th>
                        <input type="submit" class="btn btn-success">
                    </form>

我现在的AJAX:

                       $(document).ready(function() {
                           $('#submitRequest').submit( function( event ) {
                               $.ajax({ // create an AJAX call...
                                   data: $('#submitRequest').serialize(), // serialize the form
                                   type: $('#submitRequest').attr('method'), // GET or POST from the form
                                   url: $('#submitRequest').attr('action'), // the file to call from the form
                                   success: function(response) { // on success..
                                        showTable();
                                   }
                               });
                               event.preventDefault();
                            });
                        });

3 个答案:

答案 0 :(得分:4)

试试这个:

当输入值更改时,表单将提交,

jQuery("#submitRequest input").change(function(){
    $('#submitRequest').submit();
});

答案 1 :(得分:1)

我只需更改我的jquery选择和功能就可以解决我的问题。

我从

改变了它

$('#submitRequest').submit( function( event ) {

$('.submitForm').on('keyup', function(){

我向每个输入类添加了submitForm

答案 2 :(得分:0)

您可以在更改后在ajax中发帖,并从服务器获取响应

Date