如何使用 jquery ajax 提交以逗号分隔的多个 select

How to submit comma delimited on multiple select using jquery ajax

我试图弄清楚如何在多个 select 上提交逗号分隔值。这是我的示例代码:

$( 'myform').ajaxForm({
    beforeSubmit: function(data) {
        var queryString = compressParam($.param(data));
        //console.log('params:'+queryString);
    },
    success: function(response){
        $('div').html(response);
    }
    error: function(a,e,et) { alert('ERROR 101: '+et); }
});

function compressParam(data) {
    data = data.replace(/([^&=]+=)([^&]*)(.*?)&([^&]*)/g, ",");
    return /([^&=]+=).*?&/.test(data) ? compressParam(data) : data;
}

我找到了一个可以组合相同参数的函数。工作起来很有魅力,但不知道如何作为数据提交,或者您是否有其他想法如何使用 ajaxForm 以逗号分隔提交多个参数?

我知道这是对我的问题的迟到回复,但希望能帮助像我一样希望一次又一次解决这个问题的人。感谢 John Resig 的代码和解释。

function compress(data){
    var q = {}, ret = "";
    data.replace(/([^=&]+)=([^&]*)/g, function(m, key, value){
        q[key] = (q[key] ? q[key] + "," : "") + value;
    });
    for ( var key in q )
        ret = (ret ? ret + "&" : "") + key + "=" + q[key];
    return ret;
}