gpt4 book ai didi

javascript - jQuery 方法 : difference between . submit() 与 .trigger ('submit' )

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:56 27 4
gpt4 key购买 nike

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

<form class="js-form-hook-xyz">
<button>Submit form</button>
</form>

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) );
}
});

资源:

  1. api.jquery.com/submit
  2. api.jquery.com/trigger
  3. api.jquery.com/on
  4. www.inkling.com/read/jquery-cookbook-cody-lindley-1st/chapter-8/recipe-8-5

.trigger('submit') 是否提供了任何其他附加功能?我错过了什么?

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

最佳答案

没有参数的submit()trigger('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() 是调用 trigger('submit') 的一种更易读的方式。两者都没有特殊功能,您选择哪个是个人喜好。

注意: click() 也是如此, change()等..

is "allowing to pass arbitrary data" the only advantage of using .trigger('submit') ?

除非您认为少调用一个函数是一种优势,否则确实如此。

关于javascript - jQuery 方法 : difference between . submit() 与 .trigger ('submit' ),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25640906/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com