Simple ajax form using javascript no jQuery

前端 未结 9 1047
终归单人心
终归单人心 2020-11-28 11:46

I\'m working with a form for which the mark-up I can\'t change & can\'t use jQuery. Currently the form post the results to a new window. Is it possible to change this to

9条回答
  •  离开以前
    2020-11-28 12:34

    Here's a nifty function I use to do exactly what you're trying to do:

    HTML:

    ...

    JS:

    function AJAXPost(myself) {
        var elem   = myself.form.elements;
        var url    = myself.form.action;    
        var params = "";
        var value;
    
        for (var i = 0; i < elem.length; i++) {
            if (elem[i].tagName == "SELECT") {
                value = elem[i].options[elem[i].selectedIndex].value;
            } else {
                value = elem[i].value;                
            }
            params += elem[i].name + "=" + encodeURIComponent(value) + "&";
        }
    
        if (window.XMLHttpRequest) {
            // code for IE7+, Firefox, Chrome, Opera, Safari
            xmlhttp=new XMLHttpRequest();
        } else { 
            // code for IE6, IE5
            xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
        }
    
        xmlhttp.open("POST",url,false);
        xmlhttp.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
        xmlhttp.setRequestHeader("Content-length", params.length);
        xmlhttp.setRequestHeader("Connection", "close");
        xmlhttp.send(params);
    
        return xmlhttp.responseText;
    }
    

提交回复
热议问题