Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Backbone.js 在表单提交上,确定单击了哪个提交按钮操作_Backbone.js - Fatal编程技术网

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'}, ...);
            }

        }