【发布时间】:2014-02-04 11:43:33
【问题描述】:
我在我的应用程序中使用 laravel 和 sammy.js。我的登录表单如下所示:
<form action="#/login" method="post">
<!-- inputs -->
</form>
现在,sammy.js 像这样捕获它:
this.post('#/login',function(){
//handle, send to laravel for login
});
我的问题是,如果我按下回车键,显然不是提交表单,这将导致this.post('#/login') 事件被捕获并执行函数,HTTP 请求已经发出,并且 laravel 路由被要求。由于路由不存在,所以会抛出MethodNotAllowedHttpException。
现在,问题是:为什么会发生这种情况?按“提交”按钮进行登录时,按回车键会导致上述错误。
我想要这个问题的实际解决方案以及对它的解释,而不是像按键上的 e.preventDefault() 或 js 中的 return false 这样的补丁。
注意:sammy 已正确初始化,表单位于 sammy 工作的容器中,并使用以前版本的站点中使用的 enter 键提交。现在已经发生了很多变化,所以还原不是一个好的选择,所以我想要一个关于如何解决问题的实际建议。
谢谢
【问题讨论】:
-
您使用的是哪种浏览器?
-
我正在使用谷歌浏览器
-
我刚刚在 Firefox 中尝试过,而且更奇怪的是,像 chrome 一样按回车键进入
myserver/# instead或myserver/#/login。单击提交按钮有效,登录,并显示正确的 url。我说它更奇怪的原因是因为我的 sammy init 在myserver/#,所以它可能会达到那么远,但不会更远
标签: javascript php forms laravel sammy.js