Javascript 将复选框formfields转换为表单提交的名称-值对

Javascript 将复选框formfields转换为表单提交的名称-值对,javascript,jquery,forms,web,checkbox,Javascript,Jquery,Forms,Web,Checkbox,我有一堆复选框,我必须提交到服务器端脚本,我不能更改。服务器需要scriptname?town=townA&town=townB等格式的值。我的复选框(动态生成)具有城镇名称,因此当前在我的查询字符串中显示为scriptname?townA=On&townB=On等 我希望在发布表单数据之前使用jQuery捕获表单数据,以便将格式从一种更改为另一种。我一直在尝试使用以下代码执行此操作,但无法使其正常工作: $("#frmmap").click(function () { var myar

我有一堆复选框,我必须提交到服务器端脚本,我不能更改。服务器需要scriptname?town=townA&town=townB等格式的值。我的复选框(动态生成)具有城镇名称,因此当前在我的查询字符串中显示为
scriptname?townA=On&townB=On

我希望在发布表单数据之前使用jQuery捕获表单数据,以便将格式从一种更改为另一种。我一直在尝试使用以下代码执行此操作,但无法使其正常工作:

$("#frmmap").click(function () {
    var myarr = $('#myform').getFormValues();
    $.each(myarr, function (key, value) {
        alert(key + ": " + value);
    });
    $("#frmmap").submit();
}); 


jQuery.fn.getFormValues = function () {
    var formvals = {};
    jQuery.each(jQuery(':input', this).serializeArray(), function (i, obj) {
        if (formvals[obj.name] == undefined)
            formvals[obj.name] = obj.value;
        else if (typeof formvals[obj.name] == Array)
            formvals[obj.name].push(obj.value);
        else formvals[obj.name] = [formvals[obj.name], obj.value];
    });
    return formvals; 

复选框值需要来自哪里?当一个复选框有一个
值时
您将不会得到
“On”
您将在选中该复选框时得到该值。可以简单地使用
serialize()
在您设置了值Hanks之后,您为我指明了正确的方向,我只需要将值设置到城镇,它就起作用了。