Jquery.Form 异步提交表单的简单实例


Posted in Javascript onMarch 03, 2014

http://www.vaikan.com/docs/jquery.form.plugin/jquery.form.plugin.html#

1. 在你的页面里写一个表单。一个普通的表单,不需要任何特殊的标记:

<form id="myForm" method="post" action="/Home/AjaxForm">
<div>
Name:<input id="username" name="username" type="text" />  
Password:<input id="password" name="password" type="text" />
<br />
<input type="submit" value="submit async" id="lnkSubmit" />
</div>
</form>

在没有Jquery.Form组件的时候,提交表单,页面会进入阻塞模式,等待服务器端的响应。

2. 引入jQuery和Form Plugin Javascript脚本文件并且添加几句简单的代码让页面在DOM加载完成后初始化表单:

<head>    
<script type="text/javascript" src="path/to/jquery.js"></script>    
<script type="text/javascript" src="path/to/form.js"></script>     
<script type="text/javascript">        
// wait for the DOM to be loaded        
$(document).ready(function() {            
// bind 'myForm' and provide a simple callback function            
// 为myform绑定ajaxForm异步提交事件,并提供一个简单的回调函数。           
$('#myForm').ajaxForm(function() {                
alert("Thank you for your comment!");            
});        
});    
</script>
</head>
加上jquery.form组件后,提交表单时,页面不会再同步提交,而是由js做异步提交,因此提交后页面不会有刷新。

3. 加入能够与服务器端进行交互的回调函数。

$(document).ready(function () { 
     //options是一个ajaxForm的配置对象。?
     var options = { 
        //target: '#output1',   // target element(s) to be updated with server response  
        //beforeSubmit: showRequest,  // pre-submit callback  
       <FONT color=#ff0000> success: callBackFunc  // post-submit callback</FONT>          // other available options:  
        //url:       url         // override for form's 'action' attribute  
        //type:      type        // 'get' or 'post', override for form's 'method' attribute  
        //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)  
        //clearForm: true        // clear all form fields after successful submit  
        //resetForm: true        // reset the form after successful submit  
        // $.ajax options can be used here too, for example:  
        //timeout:   3000  
    }; 
    // bind form using 'ajaxForm'  
    $('#myForm').ajaxForm(options); 
});  

 // responseText是服务端的响应值。statusText是页面 
 // 提交状态值,success表示成功。 
function callBackFunc(responseText, statusText) { 
    if (statusText == 'success') { 
        alert(responseText); 
    } 
 else{ 
 alert(“服务端错误!”); 
      } 
} 
如果返回的是json数据则回调函数可以这么写 
function resultFunction(responseText,statusText) { 
        if (statusText == 'success') { 
            if (responseText.code == 1) { 
                alert(responseText.message); 
            }  
            else { 
                alert('error occurs!'); 
            } 
        } 
        else { 
            alert('服务器错误!'); 
        } 
    }

服务端的代码如下:
[HttpPost] 
public ActionResult AjaxForm(FormCollection form) 
{ 
    string message = "Name:" + form["username"] + " PWD: "+form["password"]  ; 
    //return Content(message); 
    return Json(new { code = 1, message = message }); 
}

4. 加入提交前的数据校验函数
为options对象添加 beforeSubmit属性
var options = { 
                //target: '#output1',   // target element(s) to be updated with server response  
                <FONT color=#ff0000>beforeSubmit: checkData,  // pre-submit callback  
</FONT>                success: callBackFunc  // post-submit callback                  // other available options:  
                //url:       url         // override for form's 'action' attribute  
                //type:      type        // 'get' or 'post', override for form's 'method' attribute  
                //dataType:  null        // 'xml', 'script', or 'json' (expected server response type)  
                //clearForm: true        // clear all form fields after successful submit  
                //resetForm: true        // reset the form after successful submit  
                // $.ajax options can be used here too, for example:  
                //timeout:   3000  
            }; 
 // pre-submit callback  
       function checkData(formData, jqForm, options) { 
           // formData is an array; here we use $.param to convert it to a string to display it  
           // but the form plugin does this for you automatically when it submits the data  
           //var queryString = $.param(formData); 
           // jqForm is a jQuery object encapsulating the form element.  To access the  
           // DOM element for the form do this:  
           var formElement = jqForm[0];  
           //alert('About to submit: \n\n' + queryString); 
           // here we could return false to prevent the form from being submitted;  
           // returning anything other than false will allow the form submit to continue  
           //return true; 
           if ($(formElement).find("#username").val() == "") { 
               alert("please enter username!"); 
               return false; 
           } else { 
               return true; 
           } 
       }

验证用户名是否为空,是则提示输入,并取消表单提交。
Javascript 相关文章推荐
js分解url参数(面向对象-极简主义法应用)
Aug 09 Javascript
js 限制数字 js限制输入实现代码
Dec 04 Javascript
jQuery插件bxSlider实现响应式焦点图
Apr 12 Javascript
jQuery+CSS3文字跑马灯特效的简单实现
Jun 25 Javascript
Google 地图叠加层实例讲解
Aug 06 Javascript
JS中常用的正则表达式
Sep 29 Javascript
JS获取html元素的标记名实现方法
Oct 08 Javascript
jQuery实现圣诞节礼物传送(花式轮播)
Dec 25 Javascript
jQuery制作图片旋转效果
Feb 02 Javascript
推荐10款扩展Web表单的JS插件
Dec 25 Javascript
关于React动态加载路由处理的相关问题
Jan 07 Javascript
vue实现输入框自动跳转功能
May 20 Javascript
jquery实现ajax提交form表单的方法总结
Mar 03 #Javascript
SeaJS入门教程系列之SeaJS介绍(一)
Mar 03 #Javascript
js的hasownproperty使用示例
Mar 02 #Javascript
javascript对象的使用和属性操作示例详解
Mar 02 #Javascript
使用js显示当前时间示例
Mar 02 #Javascript
jquery实现背景墙聚光灯效果示例分享
Mar 02 #Javascript
jquery制作弹窗提示窗口代码分享
Mar 02 #Javascript
You might like
ASP和PHP都是可以删除自身的
2007/04/09 PHP
详解PHP中strlen和mb_strlen函数的区别
2014/03/07 PHP
PHP编程基本语法快速入门手册
2016/01/07 PHP
浅谈php的TS和NTS的区别
2019/03/13 PHP
javascript 读取xml,写入xml 实现代码
2009/07/10 Javascript
JS操作Cookies的小例子
2013/10/15 Javascript
javascript获取函数名称、函数参数、对象属性名称的代码实例
2014/04/12 Javascript
javascript实现网页背景烟花效果的方法
2015/08/06 Javascript
浅析JavaScript 调试方法和技巧
2015/10/22 Javascript
Window.Open打开窗体和if嵌套代码
2016/04/15 Javascript
JavaScript中localStorage对象存储方式实例分析
2017/01/12 Javascript
Ionic项目中Native Camera的使用方法
2017/06/07 Javascript
详解mpvue小程序中怎么引入iconfont字体图标
2018/10/01 Javascript
基于vue-cli、elementUI的Vue超简单入门小例子(推荐)
2019/04/17 Javascript
php结合js实现多条件组合查询
2019/05/28 Javascript
vue和iview实现Scroll 数据无限滚动功能
2019/10/31 Javascript
[36:20]KG vs SECRET 2019国际邀请赛小组赛 BO2 第二场 8.16
2019/08/19 DOTA
分享一下Python 开发者节省时间的10个方法
2015/10/02 Python
详解Python中contextlib上下文管理模块的用法
2016/06/28 Python
详解Python中的文件操作
2016/08/28 Python
用TensorFlow实现lasso回归和岭回归算法的示例
2018/05/02 Python
flask框架中勾子函数的使用详解
2018/08/01 Python
Django自定义列表 models字段显示方式
2020/04/03 Python
用CSS3的box-reflect来制作倒影效果
2016/11/15 HTML / CSS
Notino法国:购买香水和化妆品
2019/04/15 全球购物
测量实习生自我鉴定
2013/09/19 职场文书
环境工程毕业生自荐信
2013/11/17 职场文书
财务会计自荐信范文
2014/02/21 职场文书
高中竞选班长演讲稿
2014/04/24 职场文书
反腐倡廉警示教育活动总结
2014/05/05 职场文书
政府采购方案
2014/06/12 职场文书
副总经理岗位职责范本
2014/09/30 职场文书
财务审计整改报告
2014/11/06 职场文书
巾帼标兵事迹材料
2014/12/26 职场文书
先进个人推荐材料
2014/12/29 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python