zl程序教程

您现在的位置是:首页 >  前端

当前栏目

jQuery.Form.js提交表单详解ajaxSubmit()

jQueryJS 详解 提交 表单 Form
2023-09-11 14:14:50 时间

jQuery.Form.js 是一个用于使用jQuery异步提交表单的插件,它使用方法简单,支持同步和异步两种方式提交。

第一步:引入jQuery与jQuery.Form.js

1 <script src="jQuery.1.8.3.js" type="text/javascript"></script>
2 <script src="jQuery.Form.js" type="text/javascript"></script>

第二步:HTML示例代码

<div id="div1">
    <form id="form1" method="get" action="#">
        <p>
        <label for="name">
            姓名:
        </label>
        <input type="text" name="name" />
        </p>
        <p>
            <label for="age">
                姓名:
            </label>
            <input type="text" name="age" />
        </p>
        <p>
            <label for="country">
                国家:
            </label>
            <input type="checkbox" name="country" value="1" />蜀国
            <input type="checkbox" name="country" value="2" />魏国
            <input type="checkbox" name="country" value="3" />吴国
        </p>
        <p><input type="submit" value="确认" /></p>
    </form>
</div>
<div id="div2"></div>

第三步:JS代码

$(function () {
    $(":submit").click(function () {
        var options = {
            url: "indexAjax.aspx",
            target: "#div2",
            success: function (data) {
                alert(data);
            }
        };
        $("#form1").ajaxForm(options);
    })
})

第四步:后台处理代码

string strName = Request["name"];
string strAge = Request["age"];
string strCountry = Request["country"];
Response.Clear();
Response.Write("姓名:" + strName + ";   年龄:" + strAge + ";   国家:" + strCountry);
Response.End();


jQuery.Form.js 配置选项options


选项说明
url表单提交数据的地址
typeform提交的方式(method:post/get)
target服务器返回的响应数据显示在元素(Id)号
beforeSerialize: function($form, options)表单数据被序列化之前执行的回调函数,如果在内部return false将终止序列化和提交。
beforeSubmit: function(arr, $form, options)表单数据被序列化成arr数组,并且在提交前触发的回调函数。
error提交失败执行的回调函数
success提交成功后执行的回调函数
data除了表单数据外,还需要额外提交到服务器的数据
iframe如果有<input type="file">是否应该使用iframe来上传文件(对旧版本浏览器而言)
iframeSrc为<iframe>元素设定src属性值
iframeTarget如果你想用自己的iframe来上传文件,可以将Id传给这个属性
dataType期望服务器返回数据类型
clearForm提交成功后是否清空表单中的字段值
restForm提交成功后是否重置表单中的字段值,即恢复到页面加载时的状态
timeout设置请求时间,超过该时间后,自动退出请求,单位(毫秒)
forceSync 
semantic 
uploadProgress 

可操作函数




函数说明
ajaxForm提交表单 与ajaxSubmit的区别在于是否触发浏览器的提交。
ajaxSubmit提交表单
formSerialize序列化表单
fieldSerialize序列化字段
fieldValue返回某个input的字段值
resetForm重置表单为打开页时的状态
clearForm清空表单的所有值
clearFields清空某个字段值

对于之前的表单,我们输入值,然后序列化整个表单看看

var str = $("#form1").formSerialize(options);
alert(str);

当然你也可以序列化单一个字段:

var str = $("input[name=name]").fieldSerialize(options);

返回某个字段值:

var str = $('#form1 input[name=name]').fieldValue();


ajaxSubmit()

ajaxSubmit()是第三方插件jquery.form实现;

submit() 方法触发 submit 事件,或规定当发生 submit 事件时运行的函数。$(selector).submit(function)

使用 preventDefault() 函数来阻止对表单的提交。

通常情况下,我们直接通过form提交的话, 提交后当前页面跳转到form的action所指向的页面。然而,很多时候我们比不希望提交表单后页面跳转,那么,我们就可以使用ajaxSubmit(obj)来提交数据。

$('button').on('click', function() {
    $('form').on('submit', function() {
        var title = $('inpur[name=title]').val(),
            content = $('textarea').val();
        $(this).ajaxSubmit({
            type: 'post', // 提交方式 get/post
            url: 'your url', // 需要提交的 url
            data: {
                'title': title,
                'content': content
            },
            success: function(data) { // data 保存提交后返回的数据,一般为 json 数据
                // 此处可对 data 作相关处理
                alert('提交成功!');
            }
            $(this).resetForm(); // 提交后重置表单
        });
        return false; // 阻止表单自动提交事件,必须返回false,否则表单会自己再做一次提交操作,并且页面跳转

    });
});

如果要提交之后返回数据再触发ajax异步交互(实际就是一个按钮触发两个事件,后一个事件要等前一个事件完成的情况才触发)


$("#uploadImage").on("submit",function () { //触发form表单提交,url写在form标签
    $("#uploadImage").ajaxSubmit(options); // form表单提交后触发
    return false; // 必须返回false,否则表单会自己再做一次提交操作,并且页面跳转
});
var options = {
    //target: '#picSrc',          //把服务器返回的内容放入id为picSrc的元素中
    //beforeSubmit: function({
                }),  //提交前的回调函数
    success:function (backData) { //提交后的回调函数

        var sendData={
            "srcImageFile":backData.serviceIcon,
            "result":backData.serviceIcon,

        };
        $.ajax({
            url:"/Wisdom/smartCampus/service/cutPicture",//交互地址
            type:"post",//方法
            //dataType:"json",
            contentType:"application/json",//头部
            data:JSON.stringify(sendData),//数据
            success:function (backData) {
                $("#uploadImage").resetForm();//重置表单

            }
        })
    },
    timeout: 3000               //限制请求的时间,当请求大于3秒后,跳出请求
};




函数说明
ajaxForm提交表单 与ajaxSubmit的区别在于是否触发浏览器的提交。
ajaxSubmit提交表单
formSerialize序列化表单
fieldSerialize序列化字段
fieldValue返回某个input的字段值
resetForm重置表单为打开页时的状态
clearForm清空表单的所有值
clearFields清空某个字段值