【问题标题】:Detect which event Submits the form检测哪个事件提交表单
【发布时间】:2015-11-17 09:31:07
【问题描述】:

我有一个通过 jQuery 提交的表单以及当用户单击提交按钮时:

例如:-

jQuery 提交

某事件

jQuery("#live_form").submit();

按钮点击提交

点击按钮

jQuery("#button1").click(function(){
  jQuery("#live_form").submit();
});

当表单通过 jQuery 方式提交时,我需要执行一个函数(say func1),否则在单击按钮提交表单时执行另一个函数(say func2)。

jQuery("#live_form").submit(function(){
  //some code
});

如何在不使用全局变量的情况下区分这些提交?

【问题讨论】:

  • 嗯,这取决于标记,您也可以发布。

标签: javascript jquery forms


【解决方案1】:
jQuery("#button1").click(function(event){
  console.log("Form submit from "+event.target.nodeName);
  jQuery("#live_form").submit();
});

jQuery("#live_form").submit(function(event){
 console.log("Form submit from "+event.target.nodeName);
});

第一个块返回BUTTON,第二个块返回FORM

【讨论】:

  • 您好,谢谢您的回答。虽然它解决了我的问题,但我想知道如果代码中使用了多个 jQuery 提交,我将如何区分(不涉及按钮,这里event.target.nodeName 总是给出 FORM)。
【解决方案2】:

尝试:

       var fromWhere = {};
        jQuery("#button1").click(function(){
          fromWhere = $(this);
          jQuery("#live_form").submit();
        });

        jQuery("#live_form").submit(function(){
         fromWhere = $(this);
        });
        console.log(fromWhere);

【讨论】:

    【解决方案3】:

    您可以使用event.target.nodeName 属性来识别它是从哪个提交的。代码在这里:

    $("#yourform").submit(function(event){
    if(event.target.nodeName=="BUTTON"){
     functionOne();
    }else if(event.target.nodeName=="FORM"){
     functionTwo();
    }
    });
    

    【讨论】:

      猜你喜欢
      • 2013-01-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-03
      • 2020-12-18
      • 1970-01-01
      • 1970-01-01
      • 2011-08-03
      相关资源
      最近更新 更多