我想使用jQuery提交一个表单。有人能提供代码,演示或示例链接吗?


当前回答

注意,如果您已经为表单安装了提交事件侦听器,则内部调用submit()

jQuery('#<form-id>').submit( function(e){ 
    e.preventDefault();
    // maybe some validation in here
    if ( <form-is-valid> ) jQuery('#<form-id>').submit();
});

不会工作,因为它试图为这个表单的提交事件安装一个新的事件侦听器(失败)。所以你必须访问HTML元素本身(从jQquery打开),并直接在这个元素上调用submit():

    jQuery('#<form-id>').submit( function(e){ 
      e.preventDefault();
      // note the [0] array access:
      if ( <form-is-valid> ) jQuery('#<form-id>')[0].submit();
    });

其他回答

到目前为止,解决方案都要求您知道表单的ID。

使用以下代码在不需要知道ID的情况下提交表单:

function handleForm(field) {
    $(field).closest("form").submit();
}

例如,如果您想处理按钮的单击事件,您可以使用

$("#buttonID").click(function() {
    handleForm(this);    
});

你可以这样使用它:

  $('#formId').submit();

OR

document.formName.submit();

在jQuery我更喜欢以下:

$("#form-id").submit()

但话又说回来,你真的不需要jQuery来执行这个任务-只需使用常规的JavaScript:

document.getElementById("form-id").submit()

我的方法略有不同,将按钮更改为提交按钮,然后单击

$("#submit").click(function (event) {
  $(this).attr("type", "submit");
  $(this).click();
});

我还使用以下方法通过Ajax提交了一个表单(没有实际提交它):

  jQuery.get("process_form.php"+$("#form_id").serialize(), {}, 
    function() {
      alert("Okay!"); 
    });