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


当前回答

来自手册:jQuery文档

$("form:first").submit();

其他回答

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

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

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

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

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

我建议使用通用的解决方案,这样就不必为每个表单添加代码。使用jquery表单插件(http://jquery.malsup.com/form/)并添加此代码。

$(function(){
$('form.ajax_submit').submit(function() {
    $(this).ajaxSubmit();
            //validation and other stuff
        return false; 
});

});

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

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

在jQuery我更喜欢以下:

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

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

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

注意,如果您已经为表单安装了提交事件侦听器,则内部调用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();
    });