jQuery сериализовать без имени? - PullRequest
2 голосов
/ 16 марта 2012

Используя .serialize (), я просто хочу массив значений, а не пару имя-значение.

Например, вернуть это:

Single & Multiple & Multiple3 & Check2 & Radio1

Вместо:

одиночный = Single & множественный = Multiple & множественный = Multiple3 и проверить = Check2 и радио = Radio1

Ответы [ 4 ]

1 голос
/ 16 марта 2012

Вы можете использовать .map для преобразования соответствующих input с (в этом примере все input с, select с, textarea с, которые не являются кнопками) в массив их значений, затем используйте join:

$("#my_form").submit(function (e) {
    var serialized = 
        $(":input:not(:button, :submit)", this).map(function(i, el) {
            return el.value;
        }).get().join("&");

    alert(serialized);
});

Пример: http://jsfiddle.net/andrewwhitaker/zQ4P2/1/

1 голос
/ 16 марта 2012

Это своего рода поражение цели сериализации, но вы можете создать свою собственную:

var serializeValues = function(obj) {
  var result = [];
  for(x in obj) result.push(obj[x]);
  return result.join('&');
}
1 голос
/ 16 марта 2012
var value = $("form").serialize();
var newValue = value.replace(/&[^=]+/g, "").replace(/=/g, "/");

String.replace: http://www.w3schools.com/jsref/jsref_replace.asp

JS Regex: http://www.w3schools.com/jsref/jsref_obj_regexp.asp

1 голос
/ 16 марта 2012

Вы можете сделать свой собственный плагин для этого:

jQuery.fn.mySerialize = function() {

  var returning = '';

  $('input, select, textarea', this).each(function() {
      if (this.value !== "") // check this to avoid && in returning string
          returning += '&' + this.value;
  });

  return returning.substring(1);

};

И вы можете использовать его так:

var serialize = $("form#fID").mySerialize();
alert(serialize);

Демо: http://jsfiddle.net/maniator/n2tca/

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...