简体   繁体   English

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

[英]How to submit comma delimited on multiple select using jquery ajax

I was trying to figure it out to submit a comma delimited value on a multiple select. Here's my sample code:我试图弄清楚如何在多个 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(/([^&=]+=)([^&]*)(.*?)&\1([^&]*)/g, "$1$2,$4$3");
    return /([^&=]+=).*?&\1/.test(data) ? compressParam(data) : data;
}

I found a function that will combine same parameter.我找到了一个 function 将组合相同的参数。 Works like a charm but don't know how to submit as data or do you have other idea how to submit a multiple parameter in comma delimited using ajaxForm?工作起来很有魅力,但不知道如何作为数据提交,或者您是否有其他想法如何使用 ajaxForm 以逗号分隔提交多个参数?

I know this is a late response to my question but hopefully helps anyone just like me looking to solve this problem again and again.我知道这是对我的问题的迟到回应,但希望能帮助像我一样一次又一次地解决这个问题的人。 Kudos to John Resig for the code and explanation.感谢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;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM