原创

JQuery中a标签的一个好玩的东西

a标签进行POST请求

        在很多时候,我们都习惯了用a标签去触发某一些事件,如分页,进入商品详情等等。对于在a标签的href中传输中文,其实是一件很麻烦的事。一个程序如果说很多数据都需要进行转码,那有多少意义去做呢?冗余代码会不会很多呢?虽然仅仅只是那么一小行代码,但是对于代码的严谨性是否真正意义上有提高呢?


         对于a标签来说,它就如同一个鸡蛋,原本是完好的,数据可以通过GET方式去传递的。但是一旦数据中出现了某种意义上它不认识的字符,那么这个鸡蛋就如同过期了一般成为了臭鸡蛋。但是很多时候我们不能去修改他的不是,因为一旦改这一个a标签就有几十几百甚至上千上万个a标签都得变。


         是不是很麻烦呢?其实只需要做一个公共的js就可以解决这种繁琐的问题了。众所周知的POST方式是很有效解决部分中文乱码的提交方式。那么我们就可以将这一个方式植入到a标签的href上,让这个a标签进行提交的时候是通过的POST请求。


 公共代码如下:

    function aPost(formName){     
    $(formName+" a").click(function (){
        var url = $(this).attr("href");
        var goHref = url.split("?")[0];
        var attrMessage = url.split("?")[1].split("&");
        var formObj = $("<form></form>");
        formObj.attr("action", goHref);
        formObj.attr("method","POST");
        for(var i=0;i<attrMessage.length;i++){
            var my_input = $('<input type="text" />');
            my_input.attr("name",attrMessage[i].split("=")[0]);
            my_input.attr("value",attrMessage[i].split("=")[1]);
            formObj.append(my_input);
        }
    formObj.submit();
        return false;
    });
    }



formName只是为了确定a标签是在哪一个标签下方进行公用。
 这一段代码只是进行了简单的字符切割,将对应的数据创建保存到表单中即可。
思维很清晰,代码很凌乱。 

关注下方微信公众号“Java精选”(w_z90110),回复关键字领取资料:如HadoopDubboCAS源码等等,免费领取资料视频和项目。 

涵盖:程序人生、搞笑视频、算法与数据结构、黑客技术与网络安全、前端开发、Java、Python、Redis缓存、Spring源码、各大主流框架、Web开发、大数据技术、Storm、Hadoop、MapReduce、Spark、elasticsearch、单点登录统一认证、分布式框架、集群、安卓开发、iOS开发、C/C++、.NET、Linux、Mysql、Oracle、NoSQL非关系型数据库、运维等。

评论

分享:

支付宝

微信