Backbone.js 在表单提交上,确定单击了哪个提交按钮操作
提交表单时,如何获取“提交按钮操作”?比如,Backbone.js 在表单提交上,确定单击了哪个提交按钮操作,backbone.js,Backbone.js,提交表单时,如何获取“提交按钮操作”?比如, <form data-action="foo"> <button type="submit" name="action" value="update">Update</button> <button type="submit" name="action" value="cancel">Cancel</button> </form> 通过获取提交按钮的值 $(docum
<form data-action="foo">
<button type="submit" name="action" value="update">Update</button>
<button type="submit" name="action" value="cancel">Cancel</button>
</form>
通过获取提交按钮的值
$(document).on("click", ":submit", function(e){
alert($(this).val());
});
您可以通过以下方式在Vanilla JS中实现这一点:
document.querySelectorAll('button[type=submit]').forEach(函数(btn){
btn.addEventListener('click',函数(e){
console.log('您已单击按钮:',此.value);
e、 预防默认值();
})
});代码>
更新
取消
您可以在单击事件上获取按钮值,使用“阻止默认值”停止表单提交
var el=document.queryselectoral('button');
el.forEach(项目=>{
item.addEventListener('click',函数(e){
e、 预防默认值();
console.log(如target.value);
})
})
更新
取消
以下是获取通知的方法。只需将id
属性添加到元素并从中获取它
var eventType='';
$(“按钮”)。在(“单击”)上,函数(e){
警报($(e.currentTarget).attr('id')+'clicked');
eventType=$(e.currentTarget).attr('id');
//保存({action:eventType},…);
})
更新
取消
最简单的方法是使用event.target
您可以获取按钮的值
,并将条件置于该按钮上
// you can determine by e.target.value that action is 'update' or 'cancel'
if(e.target.value=='update'){
// Save the model, ie, implicitly do a POST with action UPDATE
this.model.save({action: 'update'}, ...);
}
if(e.target.value=='cancel'){
// Save the model, ie, implicitly do a POST with action CANCEL
this.model.save({action: 'cancel'}, ...);
}
您的更新代码:
, events: {
'submit form[data-action="foo"]': 'editSubscription'
}
, editSubscription: function(e)
{
e.preventDefault();
// you can determine by e.target.value that action is 'update' or 'cancel'
if(e.target.value=='update'){
// Save the model, ie, implicitly do a POST with action UPDATE
this.model.save({action: 'update'}, ...);
}
if(e.target.value=='cancel'){
// Save the model, ie, implicitly do a POST with action CANCEL
this.model.save({action: 'cancel'}, ...);
}
}
event.target
将为您提供帮助。您为什么要设置type=“submit”
并在取消按钮上触发表单提交?
, events: {
'submit form[data-action="foo"]': 'editSubscription'
}
, editSubscription: function(e)
{
e.preventDefault();
// you can determine by e.target.value that action is 'update' or 'cancel'
if(e.target.value=='update'){
// Save the model, ie, implicitly do a POST with action UPDATE
this.model.save({action: 'update'}, ...);
}
if(e.target.value=='cancel'){
// Save the model, ie, implicitly do a POST with action CANCEL
this.model.save({action: 'cancel'}, ...);
}
}