在javascript中调用laravel路由

时间:2014-03-06 07:53:37

标签: validation laravel

你能用javascript调用laravel路线吗?

我正在尝试使用jquery validate插件实现前端验证。我正在进行前端验证而不是laravel提供的验证功能的原因是我在登录表单中使用了引导模式,并且我不希望用户在单击“提交”按钮时关闭表单。

目前我正在做这样的事情:

$("#modal-form-login").validate({
    errorClass: "error",
    errorPlacement: function(error, element) {
        error.insertAfter(element.parent("div"));
    },
    rules: {
        email: {
            required: true,
            email: true
        },
        password: {
            required: true,
            minlength: 4
        }
    },

    messages: {
        email: {
            required: "メールアドレスが必要です",
            email: "有効なメールアドレスを入力してください"
        },
        password: {
            required: "パスワードが必要です",
            minlength: jQuery.format("少なくとも {0} 文字")
        }
    },

    submitHandler: function(form) {
        $.ajax("http://mywebsite.com/login",{
            dataType: 'json',
            data: $('#modal-form-login').serialize(),
            success: function(response) {
                console.log("ok!");
            }
        });
    }
});

我知道后验证处理应该在submithandler中,我想调用我的doLogin路由(可以通过刀片中的{{ URL: to("doLogin") }}访问),但是我可以在javascript中实现吗?

2 个答案:

答案 0 :(得分:1)

你不想在你的javascript中进行php调用。要实现这一点,您的javascript文件必须由php提供。你的JS和CSS文件应该是静态的,不应该由php提供。所以你应该问的问题是“如何将值注入javascript?”我喜欢将网址从dom中拉出来。

我将我的登录表单设置为如下所示:

<form id="modal-form-login" method="post" action="{{ URL::to("doLogin") }}">

然后我将我的提交处理程序更新为:

 submitHandler: function(form) {
    $.ajax($('#modal-form-login').attr('action'), {
        dataType: 'json',
        data: $('#modal-form-login').serialize(),
        success: function(response) {
            console.log("ok!");
        }
    });
}

正如你在这里看到的,我正在从表格的动作中提取网址。

答案 1 :(得分:0)

在JS中使用Laravel命名路由存在一些包。

我个人认为Ziggy我也听过Laroute

的好消息