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


当前回答

这将发送一个带有预加载器的表单:

var a=$('#yourform').serialize();
$.ajax({
    type:'post',
    url:'receiver url',
    data:a,
    beforeSend:function(){
        launchpreloader();
    },
    complete:function(){
        stopPreloader();
    },
    success:function(result){
         alert(result);
    }
});

我有一些技巧,使一个表单数据post随机方法改革http://www.jackart4.com/article.html

其他回答

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

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

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

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

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

这将发送一个带有预加载器的表单:

var a=$('#yourform').serialize();
$.ajax({
    type:'post',
    url:'receiver url',
    data:a,
    beforeSend:function(){
        launchpreloader();
    },
    complete:function(){
        stopPreloader();
    },
    success:function(result){
         alert(result);
    }
});

我有一些技巧,使一个表单数据post随机方法改革http://www.jackart4.com/article.html

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

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

});

你必须使用$("#formId").submit()。

您通常会在函数中调用它。

例如:

<input type='button' value='Submit form' onClick='submitDetailsForm()' />

<script language="javascript" type="text/javascript">
    function submitDetailsForm() {
       $("#formId").submit();
    }
</script>

你可以在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();
    });