2010-11-25 3 views
0

j'ai besoin de sérialisation entrées et option sélectionnée dans la ligne de table (tr)
entrées sérialisation et sélectionnez l'option

<form action='' METHOD='post' id='formConfirmOrder'> 
<table id='viewTableOrders'> 
<tr id='vagon1'> 
    <td> 
    <select name="order[1][rail_path]" title="1"> 
    <option value="" selected="selected"></option> 
    <option value="1">Patch1</option><option value="2">Patch2</option> 
    <option value="3" selected="selected">Patch3</option><option value="5">Patch4</option></select> 
    </td> 
<td> 
<input name="order[1][vagon_id]" value="210" type="hidden"/> 
</td> 

$('#formConfirmOrder > #viewTableOrders tr#vagon1 
              select option:selected, 
     #formConfirmOrder > #viewTableOrders tr#vagon1 input').serializeArray(); 

.. * Firebug * uniquement

[Object { name="order[1][vagon_id]", more...}] 


Je ne peux pas obtenir la valeur sélectionnée de l'option!
Les entrées ont été sérialisées. , mais pas d'options.

Répondre

2

Vous devez sérialiser les <select> pas les options ... il va saisir les éléments <option> sélectionnés automatically (en obtenant le .val() du <select>, qui est un tableau ici), comme ceci:

$('#formConfirmOrder > #viewTableOrders tr#vagon1 select, 
    #formConfirmOrder > #viewTableOrders tr#vagon1 input').serializeArray(); 

Ou, si vous voulez que toutes les entrées, il suffit d'utiliser le sélecteur :input, comme ceci:

$('#vagon1 :input').serializeArray(); 

Depuis id attributs devrait être unique, cela devrait fonctionner, avec un balisage valide ... si vos ID ne sont pas uniques, c'est un autre problème que vous devez résoudre.

+0

Je viens d'ajouter tr # vagon1 select (ne pas sélectionner l'option: sélectionné) – Dezigo

+1

@Dezigo - si notre balisage est valide, il y a besoin de ce long sélecteur, il est en fait énormément moins efficace, il suffit d'utiliser le dernier ID :) –