几个月前,因为项目需求,我写了下面的三个ajax相关的函数。发布出来和大家分享。
第一个是用来无刷新加载一段HTML
第二个是把表单数据转换成一串请求字符串
第三个是结合函数一和函数二的无刷新提交表单实现。

还有一点要提到的是,无刷新表单提交,还不能对文件上传进行处理,这个主要是因为浏览器的安全设置。目前无刷新的上传,一般是用iframe来实现的。关于这个,我们在google里搜索能找到很多。

网上虽然已经有很多优秀的ajax的类和函数了,但是或许我这几个函数对大家还有点用处,于是我就发布出来了。
可以在这里下载。

//@desc    load a page(some html) via xmlhttp,and display on a container 
//@param   url          the url of the page will load,such as "index.php" 
//@param   request      request string to be sent,such as "action=1&name=surfchen" 
//@param   method       POST or GET 
//@param   container          the container object,the loaded page will display in container.innerHTML 
//@usage  
//         ajaxLoadPage('index.php','action=1&name=surfchen','POST',document.getElementById('my_home')) 
//         suppose there is a html element of "my_home" id,such as ""  
//@author  SurfChen  
//@url     http://www.surfchen.org/ 
//@license http://www.gnu.org/licenses/gpl.html GPL 
function ajaxLoadPage(url,request,method,container) 
{ 
    method=method.toUpperCase(); 
    var loading_msg='Loading...';//the text shows on the container on loading. 
    var loader=new XMLHttpRequest;//require Cross-Browser XMLHttpRequest 
    if (method=='GET') 
    { 
        urls=url.split("?"); 
        if (urls[1]=='' || typeof urls[1]=='undefined') 
        { 
            url=urls[0] "?" request; 
        } 
        else 
        { 
            url=urls[0] "?" urls[1] "&" request; 
        } 

        request=null;//for GET method,loader should send NULL 
    } 
    loader.open(method,url,true); 
    if (method=="POST") 
    { 
        loader.setRequestHeader("Content-Type","application/x-www-form-urlencoded"); 
    } 
    loader.onreadystatechange=function(){ 
        if (loader.readyState==1) 
        { 
            container.innerHTML=loading_msg; 

        } 
        if (loader.readyState==4) 
        { 
            container.innerHTML=loader.responseText; 
        } 
    } 
    loader.send(request); 
} 
//@desc    transform the elements of a form object and their values into request string( such as "action=1&name=surfchen") 
//@param   form_obj          the form object 
//@usage   formToRequestString(document.form1) 
//@notice  this function can not be used to upload a file.if there is a file input element,the func will take it as a text input. 
//         as I know,because of the security,in most of the browsers,we can not upload a file via xmlhttp. 
//         a solution is iframe. 
//@author  SurfChen  
//@url     http://www.surfchen.org/ 
//@license http://www.gnu.org/licenses/gpl.html GPL 
function formToRequestString(form_obj) 
{ 
    var query_string=''; 
    var and=''; 
    //alert(form_obj.length); 
    for (i=0;i 
//@url     http://www.surfchen.org/ 
//@license http://www.gnu.org/licenses/gpl.html GPL 
function ajaxFormSubmit(form_obj,container) 
{ 
    ajaxLoadPage(form_obj.getAttributeNode("action").value,formToRequestString(form_obj),form_obj.method,container) 
}

发布三个ajax相关的函数,包括无刷新提交表单等的更多相关文章

  1. Yii框架表单提交验证功能分析

    这篇文章主要介绍了Yii框架表单提交验证功能,结合实例形式分析了Yii框架表单提交验证功能的用法与相关注意事项,需要的朋友可以参考下

  2. ajax实现无刷新省市县三级联动

    这篇文章主要为大家详细介绍了ajax实现无刷新省市县三级联动的相关资料,利用三层架构实现,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  3. 使用AngularJS对表单提交内容进行验证的操作方法

    AngularJS是一款优秀的前端JS框架,已经被用于Google的多款产品当中。下面通过本文给大家分享使用AngularJS对表单提交内容进行验证的操作方法,需要的的朋友参考下吧

  4. element ui提交表单返回成功后自动清空表单的值的实现代码

    这篇文章主要介绍了elementui提交表单返回成功后自动清空表单的值,本文通过两种方法结合实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

  5. element表单使用校验之校验失效问题详解

    最近工作中遇到了element表单校验失败的情况,通过查找相关资料终于解决了,所以下面这篇文章主要给大家介绍了关于element表单使用校验之校验失效问题的相关资料,需要的朋友可以参考下

  6. 为JQuery EasyUI 表单组件增加焦点切换功能的方法

    下面小编就为大家带来一篇为JQuery EasyUI 表单组件增加焦点切换功能的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  7. PHP表单验证内容是否为空的实现代码

    下面小编就为大家带来一篇PHP表单验证内容是否为空的实现代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

  8. JSP针对表单重复提交的处理方法

    这篇文章主要介绍了JSP针对表单重复提交的处理方法,涉及JSP基于session的重复提交判定使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下

  9. AngularJS的表单使用详解

    这篇文章主要介绍了AngularJS的表单使用详解,在JS原有的基础上提供了更多与HTML交互的功能,需要的朋友可以参考下

  10. 了解JavaScript表单操作和表单域

    本文介绍了JavaScript中表单操作以及表单域,下面我们来一起学习一下吧

随机推荐

  1. js中‘!.’是什么意思

  2. Vue如何指定不编译的文件夹和favicon.ico

    这篇文章主要介绍了Vue如何指定不编译的文件夹和favicon.ico,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教

  3. 基于JavaScript编写一个图片转PDF转换器

    本文为大家介绍了一个简单的 JavaScript 项目,可以将图片转换为 PDF 文件。你可以从本地选择任何一张图片,只需点击一下即可将其转换为 PDF 文件,感兴趣的可以动手尝试一下

  4. jquery点赞功能实现代码 点个赞吧!

    点赞功能很多地方都会出现,如何实现爱心点赞功能,这篇文章主要为大家详细介绍了jquery点赞功能实现代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  5. AngularJs上传前预览图片的实例代码

    使用AngularJs进行开发,在项目中,经常会遇到上传图片后,需在一旁预览图片内容,怎么实现这样的功能呢?今天小编给大家分享AugularJs上传前预览图片的实现代码,需要的朋友参考下吧

  6. JavaScript面向对象编程入门教程

    这篇文章主要介绍了JavaScript面向对象编程的相关概念,例如类、对象、属性、方法等面向对象的术语,并以实例讲解各种术语的使用,非常好的一篇面向对象入门教程,其它语言也可以参考哦

  7. jQuery中的通配符选择器使用总结

    通配符在控制input标签时相当好用,这里简单进行了jQuery中的通配符选择器使用总结,需要的朋友可以参考下

  8. javascript 动态调整图片尺寸实现代码

    在自己的网站上更新文章时一个比较常见的问题是:文章插图太宽,使整个网页都变形了。如果对每个插图都先进行缩放再插入的话,太麻烦了。

  9. jquery ajaxfileupload异步上传插件

    这篇文章主要为大家详细介绍了jquery ajaxfileupload异步上传插件,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

  10. React学习之受控组件与数据共享实例分析

    这篇文章主要介绍了React学习之受控组件与数据共享,结合实例形式分析了React受控组件与组件间数据共享相关原理与使用技巧,需要的朋友可以参考下

返回
顶部