提交按钮中的jquery click()

时间:2014-11-04 23:23:06

标签: javascript jquery forms click submit

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

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

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

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

4 个答案:

答案 0 :(得分:20)

使用表单时,始终建议让submit按钮执行此操作:触发表格提交 TRIGGER THE FORM&C活动 ......这就是它的意义所在。然后,您会在submit上收听form事件,而不是click按钮上的submit事件。

您可以使用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
});

答案 1 :(得分:4)

最好将值更新直接附加到表单的提交处理程序,如此

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

答案 2 :(得分:2)

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

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

答案 3 :(得分:-1)

应始终先运行.click()。