2009-09-18 5 views
1

Je suis assez nouveau à jQuery et j'ai reçu une tâche que je n'ai vraiment aucune idée de comment compléter. Voici la situation:Comment combiner deux champs de formulaire en une seule variable avec jQuery?

J'ai une forme comme suit:

code:

<form action="search.php" method="get" id="cse-search-box"> 
    <input type="text" name="q" size="31"/> 
    <select name="category"> 
    <option>One</option> 
    <option>Two</option> 
    <option>Three</option> 
    </select> 
    <select name="contributors"> 
    <option>One</option> 
    <option>Two</option> 
    <option>Three</option> 
    </select> 
    <input type="submit" name="sa" value="Search" /> 
</form> 

Le formulaire est utilisé pour soumettre une requête à la recherche de google site. Le champ de saisie 'q' est la requête de recherche principale.

Je dois combiner les choix de l'utilisateur dans les champs 'category' et 'contributors' en une seule variable, nommée 'as_q', et l'insérer dans un champ de formulaire lors de la soumission.

Merci à l'avance pour toute aide

+0

Pouvez-vous inclure le code de travail que vous avez à ce jour afin que nous puissions voir les détails de ce que vous essayez d'accomplir? – JohnFx

+0

Je n'ai pas vraiment de code de travail! Le code de recherche du site Google utilise les variables q et as_q pour créer une requête de recherche. Si je n'avais qu'un seul champ select, cela s'appellerait as_q; et il n'y aurait pas de problème. Mais comme j'utilise deux champs de sélection, ils doivent être combinés pour former une chaîne. Le code de recherche du site Google est ensuite inclus dans le fichier search.php et récupère les termes de recherche via GET. Je ne sais pas si c'est logique! Donc, je veux combiner les deux champs de sélection en une seule variable afin qu'il puisse être utilisé comme une chaîne de recherche. – Gibset

Répondre

1
<script> 
    $('#cse-search-box').bind('submit', function(){ 
     var category = $('[name=category]').val(); 
     var contributors = $('[name=contributors]').val(); 
     $('[name=q]').val(category+' '+contributors); 
    }); 
</script> 

Demandez ce morceau de script après la <form> est déclarée (il est html, je ne suis pas très sûr s'il convient d'utiliser déclarer)

0

Le Le meilleur moyen de le faire serait d'ajouter un champ caché avec le nom dont vous avez besoin - as_q - et de concaténer les champs que vous souhaitez dans ce champ sur le formulaire de soumission.

Vous souhaitez ajouter à votre formulaire:

<input id="as_q" name="as_q" type="hidden"> 

Et puis le remplir comme ceci:

$('#cse-search-box').submit(function() { 
    $('#as_q').val($("[name='category']").val() + $("[name='contributors']").val()); 
}); 
Questions connexes