gpt4 book ai didi

javascript - Backbone.Marionette + Rails 应用程序在表单提交后重定向。为什么?

转载 作者:行者123 更新时间:2023-12-02 16:06:03 25 4
gpt4 key购买 nike

我正在开发一个示例应用程序,它使用 Ruby on Rails 作为服务器后端,使用 Backbone.Marionette 作为客户端。主要功能是“订购小部件”的表单。我正在使用backbone-forms创建表单。奇怪的是,一旦我提交表单并将模型保存到 Rails 后端,浏览器就会自动重定向到根 url,并将所有表单参数作为 URL 参数(例如 http://本地主机:3000/?数量=4&颜色=红色&needed_by=2015-06-15T04%3A00%3A00.000Z&kind=Widget+Pro)。此重定向提示 Rails 在 Controller 上获取 #index 方法(这是空白表单,因为这是应用程序的唯一功能)。

对于我的一生,我找不到造成这种情况的原因。我不知道它是 Backbone 、 Marionette 还是 Backbone 形态。我不会阻止它,或者至少充分理解它以让它做我想做的事。

如果有帮助,这里是生成表单、等待提交、提交 Backbone.Model,然后将其保存到 Rails 后端的代码:

@WidgetApp.module "Widget.Create", (Create, App, Backbone, Marionette, $, _) ->

# VIEW
class Create.Widget extends Marionette.ItemView
template: "create_widget"

# Controller
class Create.Controller extends Marionette.Controller

initialize: ->
widget = App.request "new:widget:entity"

# newView = new Create.Widget
# App.mainRegion.show newView
form = new Backbone.Form(
template: _.template($('#formTemplate').html())
model: widget
)
App.mainRegion.show(form.render())
# Run validation before submitting
form.on 'submit', (event) ->
errs = form.commit({ validate: true })
if errs
console.log errs
event.preventDefault()
widget.save()

最佳答案

尝试将语句 event.preventDefault() 作为表单提交的事件监听器中的第一个语句。我遇到了同样的问题,在事件监听器的第一行中添加相同的语句已解决我的问题。

关于javascript - Backbone.Marionette + Rails 应用程序在表单提交后重定向。为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30720870/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com