你能用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中实现吗?
答案 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)