【发布时间】:2011-07-09 01:02:51
【问题描述】:
我正在使用 brunch 来处理骨干网,但我遇到了 event.preventdefault() 问题。它最初可以工作,但在页面更改后它会停止工作。
我有一个将参数传递给模板并据此呈现页面的视图。这个页面有多种形式,根据参数加载一个。所有表单都将 preventdefault 绑定到提交按钮,但由于某种原因,在我使用导航链接之一切换表单后,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
【问题讨论】:
标签: backbone.js