我的博客
个人资料:
AlanThinker
AlanThinker@stk.me

javascript用特定参数模拟form的提交

软件开发 发表时间:2016-10-23 更新时间:2017-02-28

function doPost(path, params, method) {
    method = method || "post"; // Set method to post by default if not specified.

    // The rest of this code assumes you are not using a library.
    // It can be made less wordy if you use one.
    var form = document.createElement("form");
    form.setAttribute("method", method);
    form.setAttribute("action", path);

    for (var key in params) {
        if (params.hasOwnProperty(key)) { 
            if ($.isArray(params[key])) {
                //更多信息请参考这片文章: http://www.hanselman.com/blog/ASPNETWireFormatForModelBindingToArraysListsCollectionsDictionaries.aspx
                for (var i = 0; i < params[key].length; i++) {
                    var hiddenField = document.createElement("input");
                    hiddenField.setAttribute("type", "hidden");
                    hiddenField.setAttribute("name", key + "[" + i + "]");
                    hiddenField.setAttribute("value", params[key][i]);
                    form.appendChild(hiddenField);
                }
            }
            else {
                var hiddenField = document.createElement("input");
                hiddenField.setAttribute("type", "hidden");
                hiddenField.setAttribute("name", key);
                hiddenField.setAttribute("value", params[key]);
                form.appendChild(hiddenField);
            } 
        }
    }

    document.body.appendChild(form);
    form.submit();
}
调用示例:
 doPost('/Ssfw/Index', {
            userName: 'alan',
            code: 'abcde',
        });
 

 
IP Address: 43.129.217.254