working serialize not metodo form jquery serialization space

not - serialize jquery ajax post php



jQuery serialize convierte todos los espacios a más (3)

Actualmente, donde sea que use serialize, tengo que usarlo así:

.serialize().replace(//+/g,''%20'');

de lo contrario, cualquier espacio en los datos del formulario se convertirá en + ''s. ¿Hay alguna configuración que pueda hacer que esto sea el predeterminado?


No crea que hay un valor predeterminado, tendrá que codificar la cadena de una de estas maneras .

Aunque puedes crear tu propio plugin:

jQuery.fn.serializeAndEncode = function() { return escape(this.serialize()); } $(myForm).serializeAndEncode();


Para divertirse, aquí hay una alternativa que no usa una variable temporal:

$.fn.serializeAndEncode = function() { return $.map(this.serializeArray(), function(val) { return [val.name, encodeURIComponent(val.value)].join(''=''); }).join(''&''); }; $("#formToSerialize").serializeAndEncode();


Tuve que hacer lo mismo. La solución que dio Terry, con escape (), no funciona. The = y & están siendo codificados (no queremos eso) y los + aún están allí.

Lo que hice fue crear mi propia función para serializar:

var QueryString = ""; $(selector).each(function(index) { if(QueryString != "") QueryString += "&"; QueryString += $(this).get(0).id + "=" + encodeURIComponent( $(this).val() ); });