gpt4 book ai didi

backbone.js - event.preventdefault() 在第二次渲染后不工作

转载 作者:行者123 更新时间:2023-12-02 02:24:27 38 4
gpt4 key购买 nike

我正在使用 brunch 来处理主干,但我遇到了 event.preventdefault() 的问题。它最初工作,但在页面更改后它停止工作。

我有一个 View 将参数传递给模板,并根据该参数呈现页面。该页面有多个表单,根据参数加载一个。所有表单都将 preventdefault 绑定(bind)到提交按钮,但出于某种原因,在我使用其中一个导航链接切换表单后,preventdefault 停止工作并且表单被发布。知道为什么会这样吗?如果您需要查看代码,请告诉我。

这是如何发生的一个例子:我点击“提交故事”导航链接并输入内容并点击提交。我收到 js 警报,但没有任何反应。现在我点击“提交诗歌”并点击提交,但这次表格被发布了。如果我从“提交诗歌”开始,效果很好。如果我点击“提交诗歌”并在提交前点击刷新,它也会起作用。奇怪....

编辑:添加了代码示例。模板根据传入的类型呈现。

class exports.ClientsSettingsView extends UberView
id: 'settings_view'
className: 'view_container'

events:
'submit #credit_card_form' : 'addCard'
'submit #profile_pic_form' : 'processPicUpload'
'submit #edit_info_form' : 'test'
'click #delete_card' : 'deleteCard'


render: (type="info",status=0) ->
$('.spinner#submit').hide()
@ReadUserInfo()
$(@el).html clientsSettingsTemplate {type,status}
@FadeIn()

@

addCard: (e) ->
e.preventDefault()
$el = $(e.currentTarget)


attrs =
card_number: $el.find('#card_number').val()
card_code: $el.find('#card_code').val()
card_expiration_month: $el.find('#card_expiration_month').val()
card_expiration_year: $el.find('#card_expiration_year').val()


options =
success: (response) ->
alert "Added"
error: (e) ->
alert "Error"

model = new app.models.paymentprofile

model.save attrs, options
console.log attrs

最佳答案

稍后如何加载附加表单和提交按钮?如果您动态地将它们拉入,您的事件可能不再附加。您可以尝试使用 jquery 的 live 方法将您的事件绑定(bind)到表单提交。

.live()

关于backbone.js - event.preventdefault() 在第二次渲染后不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6632024/

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