热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

javascript–jQuery方法:.submit()与.trigger(‘submit’)之间的区别

jQuery允许通过以下任一方式以编程方式触发表单提交:$(‘.js-form-class-hook’).submit();$(‘.js-form-class-hook’).t

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){});,请参阅我在What’s the difference between $(form).submit and $(form).on(“submit”) in jQuery?的回答,我想现在更好地理解.trigger(‘submit’)的作用.

我的结论:经过一些研究后我发现使用.trigger(‘submit’)似乎提供了允许传递任意数据的“唯一”(虽然非常强大)的优点

样品用法1:

这可以例如用于区分“人”与“程序”表单提交.

在jsbin.com/jivexawixonu/1/edit?html,js,console,output看到现场演示(点击右上角的运行/清除)

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’)的唯一优势?

解决方法:

没有参数的submit()和触发器(‘submit’)之间基本上没有什么不同,实际上没有参数的submit()最终会返回trigger().

您可以通过查看jQuery Source来证明这一点:

jQuery.fn.submit()

function (data, fn) {
return arguments.length > 0 ? this.on(name, null, data, fn) : this.trigger(name);
}

因此,如果将参数传递给submit(),则会调用.on(‘submit’…,否则将调用.trigger(‘submit’).

submit()几乎是一种人类可读的调用触发器(‘submit’)的方式.两者都没有特殊功能,您选择的是个人偏好.

注意:click(),change()等同样如此.


is “allowing to pass arbitrary data” the only advantage of using .trigger(‘submit’) ?


除非你考虑一个较少的函数调用优势,是的,它是.


推荐阅读
  • Voicewo在线语音识别转换jQuery插件的特点和示例
    本文介绍了一款名为Voicewo的在线语音识别转换jQuery插件,该插件具有快速、架构、风格、扩展和兼容等特点,适合在互联网应用中使用。同时还提供了一个快速示例供开发人员参考。 ... [详细]
  • 使用在线工具jsonschema2pojo根据json生成java对象
    本文介绍了使用在线工具jsonschema2pojo根据json生成java对象的方法。通过该工具,用户只需将json字符串复制到输入框中,即可自动将其转换成java对象。该工具还能解析列表式的json数据,并将嵌套在内层的对象也解析出来。本文以请求github的api为例,展示了使用该工具的步骤和效果。 ... [详细]
  • 本文介绍了闭包的定义和运转机制,重点解释了闭包如何能够接触外部函数的作用域中的变量。通过词法作用域的查找规则,闭包可以访问外部函数的作用域。同时还提到了闭包的作用和影响。 ... [详细]
  • VScode格式化文档换行或不换行的设置方法
    本文介绍了在VScode中设置格式化文档换行或不换行的方法,包括使用插件和修改settings.json文件的内容。详细步骤为:找到settings.json文件,将其中的代码替换为指定的代码。 ... [详细]
  • 目录实现效果:实现环境实现方法一:基本思路主要代码JavaScript代码总结方法二主要代码总结方法三基本思路主要代码JavaScriptHTML总结实 ... [详细]
  • IjustinheritedsomewebpageswhichusesMooTools.IneverusedMooTools.NowIneedtoaddsomef ... [详细]
  • Vue基础一、什么是Vue1.1概念Vue(读音vjuː,类似于view)是一套用于构建用户界面的渐进式JavaScript框架,与其它大型框架不 ... [详细]
  • 本文介绍了C#中生成随机数的三种方法,并分析了其中存在的问题。首先介绍了使用Random类生成随机数的默认方法,但在高并发情况下可能会出现重复的情况。接着通过循环生成了一系列随机数,进一步突显了这个问题。文章指出,随机数生成在任何编程语言中都是必备的功能,但Random类生成的随机数并不可靠。最后,提出了需要寻找其他可靠的随机数生成方法的建议。 ... [详细]
  • 本文介绍了九度OnlineJudge中的1002题目“Grading”的解决方法。该题目要求设计一个公平的评分过程,将每个考题分配给3个独立的专家,如果他们的评分不一致,则需要请一位裁判做出最终决定。文章详细描述了评分规则,并给出了解决该问题的程序。 ... [详细]
  • 不同优化算法的比较分析及实验验证
    本文介绍了神经网络优化中常用的优化方法,包括学习率调整和梯度估计修正,并通过实验验证了不同优化算法的效果。实验结果表明,Adam算法在综合考虑学习率调整和梯度估计修正方面表现较好。该研究对于优化神经网络的训练过程具有指导意义。 ... [详细]
  • 从零学Java(10)之方法详解,喷打野你真的没我6!
    本文介绍了从零学Java系列中的第10篇文章,详解了Java中的方法。同时讨论了打野过程中喷打野的影响,以及金色打野刀对经济的增加和线上队友经济的影响。指出喷打野会导致线上经济的消减和影响队伍的团结。 ... [详细]
  • Whatsthedifferencebetweento_aandto_ary?to_a和to_ary有什么区别? ... [详细]
  • 本文讨论了微软的STL容器类是否线程安全。根据MSDN的回答,STL容器类包括vector、deque、list、queue、stack、priority_queue、valarray、map、hash_map、multimap、hash_multimap、set、hash_set、multiset、hash_multiset、basic_string和bitset。对于单个对象来说,多个线程同时读取是安全的。但如果一个线程正在写入一个对象,那么所有的读写操作都需要进行同步。 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • QuestionThereareatotalofncoursesyouhavetotake,labeledfrom0ton-1.Somecoursesmayhaveprerequi ... [详细]
author-avatar
杨barkema_252
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有