2014-03-06 55 views
0

您可以在JavaScript中調用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中實現這一點?

回答

1

你不想在你的javascript中進行PHP調用。爲了這個工作,你的JavaScript文件將不得不由PHP提供。你的JS和CSS文件應該是靜態的,不應該由php提供。所以你應該問的問題是「我如何將值注入JavaScript?」我喜歡把這些東西拉出來。

我把我的登錄表單是這個樣子:

<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!"); 
     } 
    }); 
} 

正如你可以在這裏看到,我正在從表單的動作中提取網址。

+0

嘿,我意識到這個問題是我不應該把「dataType:'json',」,因爲seralized數據將變得無法讀取一旦jsonified,但感謝人(= – TanC