Jquery serialize et serializeArray ne fonctionne pas avec Google Chrome

J’ai html suivant.

< >

J’utilise le code suivant jQuery pour obtenir les valeurs lorsque cliquez sur le bouton Suivant.

  $('#next').click(function () { var values = $('#fieldset-step_3').serialize(); alert(values); }); 

Ce code fonctionne pour firefox 8 et opera 11.60 beta. Mais cela ne fonctionne pas pour Google Chrome 15.0.874.121.

Aidez-moi, s’il vous plaît. Donnez-moi une autre idée pour obtenir des valeurs de champ définies par jQuery.

Vous semblez avoir trouvé un bug. J’ai essayé ceci dans Chrome 11 et ai vu la même chose. Si je sérialiser le formulaire, cela fonctionne. Si je sérialise des éléments de formulaire individuels, cela fonctionne. Si j’essaie de sérialiser un div contenant tous les éléments du formulaire, ou votre balise fieldset, ce n’est pas le cas.

C’est un moyen assez simple, mais fait le travail, et vous pouvez le personnaliser comme vous le souhaitez.

 parseField = function( $object ){ result = new Array(); $object.find('select[value!=""], input[value!=""]').each(function(){ var obj = {}; obj.key = $(this).attr('name'); obj.val = $(this).val(); result.push( obj ); }); return result; } 

Vous pouvez l’utiliser comme:

 var values = parseField( $('#fieldset-step_3') ); $.each(values, function(i,obj){ alert( 'My key is: ' + obj.key + ' and my value: ' + obj.val ); }); 

Je cours dans ceci aujourd’hui. $ (‘# formidable’). serialize (); fonctionne bien avec firefox, mais rien n’est sorti en chrome. Après quelques tests, voici ma réponse:

en chrome, le nom et l’identifiant du formulaire doivent être identiques pour que la sérialisation fonctionne.

mmm essayez d’append

  

au lieu de

  

lors de la validation, j’ai trouvé

 end tag for "input" omitted, but OMITTAG NO was specified …ut type="text" value="2" id="rule_form-lead_time" name="rule_form[lead_time]"> You may have neglected to close an element, or perhaps you meant to "self-close" an element, that is, ending it with "/>" instead of ">".