Internet Explorer issue with HTML5 form attribute for button element

前端 未结 6 1554
不知归路
不知归路 2020-12-29 09:18

in HTML5, there is the form attribute. Basically

6条回答
  •  慢半拍i
    慢半拍i (楼主)
    2020-12-29 09:25

    If you send form via ajax and use vanilla js, you can add inputs with "form" attribute like below:

    function sendViaAjax(event, callback) {
        event.preventDefault();
        var form = event.target;
        var formId = form.id;
        var url = form.getAttribute('action');
        var method = form.getAttribute('method');
        var data = new FormData(form);
        if(isInternetExplorer() && formId) {
            var formInputs = document.querySelectorAll('input[form="'+formId+'"], textarea[form="'+formId+'"], select[form="'+formId+'"]');
            [].forEach.call(formInputs, function (el) {
                var inputName = el.getAttribute('name');
                data.append(inputName, el.value);
            });
        }
        var xhr = new XMLHttpRequest();
        xhr.open(method, url);
        xhr.onload = function () {
            // something
        };
        xhr.onerror = function () {
           // something
        };
        xhr.send(data);
    }
    
    function isInternetExplorer() {
        return (navigator.appName == 'Microsoft Internet Explorer' ||
            !!(navigator.userAgent.match(/Trident/) ||
                navigator.userAgent.match(/rv:11/)) ||
            (typeof $.browser !== "undefined" && $.browser.msie == 1));
    }
    

提交回复
热议问题