繁体   English   中英

jquery click() 在提交按钮中

[英]jquery click() in submit button

我在表单中的提交按钮上有一个 .click() 函数:

$("#submitId").click(function () {
    $('#hiddenInput').val(someVariable);
});

它就像一个魅力。 单击提交按钮时,click() 函数会填充隐藏的输入变量,然后提交整个表单。 服务器然后接收带有刷新内容的隐藏输入。

我的问题是:它会一直有效吗? 由于某种我还不知道的原因,是否有任何危险,提交操作先执行,然后单击()函数? 我想确保隐藏的输入总是被刷新。

在处理表单时,始终建议让submit按钮完成它的工作:触发表单的提交事件……这就是它的意义所在。 然后你会监听form上的submit事件而不是submit按钮上的click事件。

您可以使用event.preventDefault()来防止表单的默认提交,以便您可以做一些内务工作,然后您可以提交表单。

$("#submitId").closest('form').on('submit', function(event) {
    event.preventDefault();
    $('#hiddenInput').val(someVariable); //perform some operations
    this.submit(); //now submit the form
});

或者简单地说,

$('form').on('submit', function(event) {
    event.preventDefault();
    $('#hiddenInput').val(someVariable); //perform some operations
    this.submit(); //now submit the form
});

最好像这样将值更新直接附加到表单的提交处理程序

$("#submitId").closest("form").submit(function () {
 $('#hiddenInput').val(someVariable);
});

我个人认为防止提交更安全,然后设置所需的输入值,然后才以编程方式提交表单。 喜欢:

$("form").submit(function (e) {
    e.preventDefault();
    $('#hiddenInput').val(someVariable);
    $(this).submit();
});

.click() 应始终首先运行。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM