Php 为什么我的Ajax表单提交在Laravel 5中不起作用

Php 为什么我的Ajax表单提交在Laravel 5中不起作用,php,jquery,ajax,forms,laravel-5,Php,Jquery,Ajax,Forms,Laravel 5,我正在开发这个Laravel5应用程序,我似乎不明白为什么我的Ajax调用对这个特定表单不起作用,因为它对其他表单一直很有效。下面是示例代码 {!! Form::model($training, ['url' => 'trainings/' . $training->id, 'method' => 'PUT', 'class' => 'form-horizontal', 'id' => 'edit_training_form',

我正在开发这个Laravel5应用程序,我似乎不明白为什么我的Ajax调用对这个特定表单不起作用,因为它对其他表单一直很有效。下面是示例代码

{!! Form::model($training, ['url' => 'trainings/' . $training->id,
    'method' => 'PUT', 
    'class' => 'form-horizontal',
    'id' => 'edit_training_form', 
    'role' => 'form']) !!}
  // Form body
{{ Form::close() }}
Ajax调用示例代码如下:

            $("document").ready(function() {

                $("#edit_academic_form").on('submit', updateAcademic);
                $("#edit_training_form").on('submit', updateTraining);
            }


        function ajaxCall(context) {

            $.ajax({
                type: "PUT",
                data: context.serialize(),
                url:  context.attr('action'),
                dataType: 'json',
                cache: false,
                beforeSend: function() {
                    $(".validation-errors").hide().empty();
                    $(".success-message").hide().empty();
                },
                success: function(data){
                    $(".success-message").append(data.message).show();
                    $(".success-message").delay( 2000 ).fadeOut();
                },
                error: function(data){
                    var errors = data.responseJSON;
                    console.log(errors);
                    // Render errors with JS
                    $.each(errors, function(index, value)
                    {
                        if (value.length != 0)
                        {
                            $(".validation-errors").append('<li>'+ value +'</li>');
                        }
                    });
                    $(".validation-errors").show();
                }
            });
        }

    function updateTraining(e){
        e.preventDefault();
        ajaxCall($(this))
    }

function updateAcademic(e){
    e.preventDefault();
    ajaxCall($(this))
}
当我点击“保存”时,我得到的是一个空白的浏览器页面,其中包含以下消息:

{“message”:“Training Update Successfully”}表明表单正在直接发布


感谢帮助

问题出在我的js上。我的js看起来是这样的:

$("document").ready(function() {

    limitCharacters();
    $("#edit_academic_form").on('submit', updateAcademic);
    $("#edit_training_form").on('submit', updateTraining);
}

函数limitCharacters()有一些语法错误,因此无法调用它下面的代码,因此Ajax无法工作。我用limitCharacters解决了问题,现在一切正常。

你有什么错误?我没有错误@NiranjanNRaju。请看问题的编辑部分。
trainings
function在哪里?您在谈论哪些培训?好的,我知道了。我的路线是这样的:路径::put('trainings/{trainings}','TrainingsController@update');
public function update(UpdateTrainingRequest $request, $id)
    {
        $data = $request->all();
        $this->training->save_training($data, $id);
        $result['message'] = "Training Updated Successfully";
        return response()->json($result);
    }
$("document").ready(function() {

    limitCharacters();
    $("#edit_academic_form").on('submit', updateAcademic);
    $("#edit_training_form").on('submit', updateTraining);
}