提交按钮中的jquery click()

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

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

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

我的问题是:它会一直有效吗? 是否有任何危险,由于某些原因我还不知道,提交操作首先执行,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()。