jQuery方法:.submit()和.trigger('submit')之间的区别

 Fealty-小飞 发布于 2022-12-23 17:33

jQuery允许通过以下任一方式以编程方式触发表单提交:

$('.js-form-class-hook').submit();

$('.js-form-class-hook').trigger('submit');


注:我的理解是,.trigger('submit').submit()什么.on('submit',function(e){});.submit(function(e){});。简而言之,这.trigger('submit')是比.submit()以编程方式提交表单更强大的方法。

我已经知道.on('submit',function(e){});和之间的一些区别.submit(function(e){});,请参阅我的答案jQuery中$(form).submit和$(form).on(“ submit”)之间有什么区别?,我现在想更好地了解的作用.trigger('submit')


我的结论是:经过一些研究,我发现使用.trigger('submit')似乎提供了允许传递任意数据的“唯一”(尽管非常强大)优势。


用法示例1:

例如,这可以用于区分“ ”对“ 程序化 ”表单提交。

在jsbin.com/jivexawixonu/1/edit?html,js,console,output上查看实时演示(单击右上角的Run / Clear)。

的HTML

jQuery的

var pleaseConfirmSubmission = function( formElem ){
  // ... some conditions checks
  // if condition met, submit with a flag
  formElem.trigger( "submit" , ['isProgrammaticalSubmission'] );
}


$("body").on("submit", ".js-form-hook-xyz", function(event, isProgrammaticalSubmission) {
  console.log("on form submission: " +  ( isProgrammaticalSubmission || "isHumanAction !" ) );
  if ( !isProgrammaticalSubmission ){ /* JS truthy/falsy value usage */
    event.preventDefault(); /* cancel form submission */
    pleaseConfirmSubmission( $(this) );
  }
});

资源:

    api.jquery.com/submit

    api.jquery.com/trigger

    api.jquery.com/on

    www.inkling.com/read/jquery-cookbook-cody-lindley-1st/chapter-8/recipe-8-5


.trigger('submit')我错过了其他功能吗?

还是“允许传递任意数据”是使用的唯一优势.trigger('submit')

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有