2017-10-20 17 views
0

J'ai un contrôle de sélection:jQuery pour sérialiser sélectionné la valeur de l'option, pas l'étiquette

<select name="AdditionalCategory"> 
    <option value="1">Category 1</option> 
    <option value="2">Category 2</option> 
</select> 

J'utilise ensuite jQuery pour envoyer la demande AJAX, sérialisation forme:

$.post("../../d/up.php",$("#main").serialize(), 
      function(data){ 

Mais, si je choisis Catégorie 1 par exemple, la fonction serialize() sérialise l'étiquette, pas la valeur de l'option. Ainsi, la demande serait up.php/?AdditionalCategory=Category 1

Est-il possible de dire la fonction d'envoyer la valeur, comme celui-ci: up.php/?AdditionalCategory=1

+0

Qu'est-ce '# main' ici? S'il vous plaît fournir plus de HTML ici ... – void

+0

@void probablement l'ID de formulaire – Thielicious

+0

Oui, c'est le formId, c'est plutôt grande forme, mais je ne pense pas qu'il y ait une erreur dans le codage. Les scripts fonctionnent bien, sauf qu'il ne s'agit pas de sérialiser ce que je veux dans le cas du contrôle de sélection. –

Répondre

2

Il devrait fonctionner correctement, mais il y a une légère erreur dans votre formulaire HTML qui est la fermeture étiquette de <option> vous avez est </value> qui devrait être </option> à la place.

Vérifiez le code de travail ci-dessous:

$(function() { 
 

 
    $("#but").click(function() { 
 
    console.log($("#main").serialize()); 
 
    }); 
 

 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<form id="main"> 
 
    <select name="AdditionalCategory"> 
 
    <option value="1" selected>Category 1</option> 
 
    <option value="2">Category 2</option> 
 
</select> 
 
</form> 
 

 
<button id="but">Click me</button>

+0

En fait, j'ai fait une erreur en écrivant la question. Le code HTML original est correct. Je ne comprends pas comment votre code peut fonctionner ... Peut-il y avoir une différence dans les versions? –

+0

Non, il ne devrait pas .. Il suffit de vérifier une fois si vous n'avez pas encore un select avec le nom 'AdditionalCategory' dans le conteneur de formulaire .. – void

+0

vous avez raison. Ce n'est pas l'erreur de syntaxe que vous avez signalée, mais c'était une erreur de syntaxe après tout ... Merci –