2009-10-27 5 views
0

Je le code html suivant:Pas en mesure d'ajouter du texte caché champ d'entrée

<input id="brandID" name="brandID" type="hidden" value="" /> 

<select id="selectList" class="textfield70pc" name="selectList"> 
    <option selected="" value="221">A</option> 
    <option value="4673">B</option> 
</select> 

Après avoir changé la valeur d'une boîte de sélection, je dois pour renseigner ce champ d'entrée. J'ai essayé quelque chose comme ça, mais ça ne marche pas.

 jQuery('#selectList').change(function(){ 
     jQuery('#brandID').attr('value', '123123'); 
     }); 

Suggestions quelqu'un?

Mise à jour
Cela fonctionne bien:

document.getElementById('brandID').value = '123' 

Mais je voudrais utiliser jQuery.

+0

a ajouté quelques tags intéressants – Jakub

+0

Est-ce que l'événement change fonctionne? – Cesar

+0

Notez que dans votre premier exemple, lorsque vous dites .brandID, vous vérifiez une entrée avec une _class_ de brandID –

Répondre

5

Le changement est pas pris en charge dans jQuery live

valeurs d'événement possibles: cliquez, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyUp

pas pris en charge: flou, mise au point, mouseenter, mouseleave, changement, soumettre

Si vous souhaitez utiliser en direct, utilisez live query


EDIT: au-dessus de votre code devrait fonctionner comme il est, peut-être votre SelectList est formaté de manière incorrecte?

Ce code HTML de base fait le travail de fonction ci-dessus pour moi:

<select id="selectList"> 
<option>1</option> 
<option>2</option> 
</select> 

Hmmm peut-être vous tout simplement pas le voir mettre à jour le code HTML, mais il ne met à jour les DOM (vous utilisez Firebug?) J'ai ajouté une alerte pour montrer la valeur et il a montré la valeur correcte

$(document).ready(function(){ 
jQuery('#selectList').change(function(){ 
    jQuery('#brandID').attr('value', '123123'); 
    alert($('#brandID').val()); 
}); 
}) 
+0

Ou simplement lier l'événement change à un élément de conteneur qui ne jamais Remplacer, puis vérifier que l'élément modifié est votre #selectList –

+0

Ah, j'ai oublié Ok, donc je vais juste utiliser $ ('# selectList'). changez à la place, mais toujours pas en mesure d'ajouter la valeur – Steven

+0

ok, Cela fonctionne mais le html n'est pas mis à jour - à partir de ce que je peux voir en utilisant Firebug Besoin de lier le changement – Steven

0
jQuery('#selectList').live('change', function(){ 
    jQuery('#brandID').value = '123123'; 
}); 

Et rappelez-vous que IE ne lancera pas l'événement onchange jusqu'à ce que le select ne soit plus actif.

0

Est-ce que cela fonctionne?

jQuery('#selectList').bind('change', function(){ 
    jQuery('#brandID').val('123123'); 
}); 

EDIT:

De l'jquery en direct() documentation page:

Ajouté dans jQuery 1.3: Associe un gestionnaire à un événement (comme un clic) pour tout le courant - élément adapté - et futur. Peut également lier des événements personnalisés. valeurs d'événement possibles: cliquez, dblclick, mousedown, mouseup, mousemove, mouseover, mouseout, keydown, keypress, keyUp pas pris en charge: flou, mise au point, mouseenter, mouseleave, changement, soumettre

+0

Non. Cela ne fonctionne pas non plus :( – Steven

+0

@Steven pouvez-vous fournir votre balisage pour votre selectList? Le problème peut être là et non associé avec le champ de saisie caché – JamesEggers

0

tout d'abord glace:

$(document).ready(function() 
{ 
    $('#selectList').change(function() { $('#brandID').val('123123'); }); 
}); 

mes hypothèses: selectList est un ID valide quelque part.

S'il s'agit d'une liste de sélection réelle (impliquée uniquement par le nom), vous souciez-vous de ce qui est sélectionné?

$(document).ready(function() 
{ 
    $('#selectList').change(function() { 
     mychoice = $('#selectList option:selected').text(); 
     $('#brandID').val(mychoice); 
    }); 
}); 
0

Après avoir lu toutes ces bonnes réponses qui n'ont pas travaillé pour vous, je dois poser la question de base - vous utilisez ce Javascript dans les $(document).ready() ou dans une balise <script> après l'élément <select>? Il doit être l'un ou l'autre afin que l'arborescence DOM contienne l'élément avant de définir ses propriétés.

Questions connexes