7
votes

Comment obtenir la valeur sélectionnée de Dropdownlist dans ASP.NET en utilisant JavaScript?

Je peuplement de la liste déroulante du pays d'une base de données. Je dois sélectionner une valeur à partir de la liste déroulante et l'attribuer à la zone de texte à l'aide de JavaScript à l'aide de JavaScript.

Code: p>

var textboxId = document.getElementById("txtCountry");
var dropdownListId =document.getElementById("ddlLocation"); 

var e = document.getElementById("ddlLocation"); 
var strUser = e.options[e.selectedIndex].value;

document.getElementById(textboxId).value = strUser;    
document.getElementById(textboxId).focus(); 


3 commentaires

Je viens de modifier vos empreintes de code, vous les avez fait tourner dans le mauvais sens. Si vous voulez qu'il apparaisse dans un bloc de code, retiendrez la ligne de quatre (ou plus) espaces.


En fait, je les ai réparées, comme vous l'avez fait. Je ne sais pas pourquoi l'OP a annulé?


Malheureusement, quand j'ai pensé à cliquer sur Modifier, j'ai cliquez sur Rollback. que tu penses que c'était la restauration.


4 Réponses :


3
votes

Essayez avec: xxx

ou xxx

c'est parce que les ID des éléments HTML dans les documents générés ne correspondent pas à L'ID que vous avez attribué dans votre code. Pour obtenir l'identifiant assigné à votre contrôle dans le HTML, vous pouvez utiliser la propriété Clientid de votre liste déroulante.

Un autre problème est que vous affectez votre élément à variable et utilisez la fonction GetElementyID qui n'est pas valide appel.

Ceci est modifié dans ASP.NET 4, qui est sur le point d'être libéré. ​​

espère que cela aide!


5 commentaires

Je reçois une erreur: document.getElementyID (..) est nul ou pas un objet si j'ai utilisé ci-dessus déclaration.


Peut-être que vous avez mal ayé l'identifiant. Il devrait être l'ID dans votre fichier ASCX / ASPX du contrôle déroulant. Exemple: Si vous postez votre code ASP.NET sera utile.



Dropdown est renseigné à partir de DB. Lorsque je sélectionne n'importe quel emplacement, je veux le lier à la zone de texte.


Ensuite, vous devriez pouvoir prendre la valeur dans la liste déroulante avec document.getElementyID ('<% = ddllocation.clientid%>'). Valeur



1
votes

Ces deux lignes: xxx

sont également fausses. Si votre ligne précédente a effectivement fonctionné: xxx

alors ce que vous avez appelé textboxid sera le contrôle de la zone de texte, vous allez donc faire un GetElementyID Utilisation de la commande au lieu d'un identifiant de chaîne.

suivre sur quoi @anthares dit; Essayez ceci: xxx

et assurez-vous que vous obtenez l'identifiant correct pour la zone de texte (rappelez-vous qu'il sera mungé par ASP.NET, au moins assurez-vous de ne pas être ne rien obtenir). Ensuite, lorsque vous faites un document.getelementByID Vous devez vérifier le résultat avant d'utiliser: xxx


1 commentaires

Reportez-vous ensuite à la première partie de ma réponse sur les deux lignes qui ne va pas.



11
votes

Votre code est faux, consultez l'endroit où j'ai apporté les modifications au même code: xxx

Ce que vous avez fait, est que vous avez sélectionné votre zone de texte et JS vous a renvoyé un élément DOM de Cette zone de texte et vous vouliez le peuplir en passant le DOM de la zone de texte dans la fonction getElementyID () fonction.

Voici où il s'est cassé: xxx

à utiliser getElementById () méthode, vous passez une valeur de chaîne de l'ID d'un élément.

espère que cela aide.


4 commentaires

Bonjour Elite, j'ai la liaison de la liste déroulante de dB et assigner comme DataTextField = "Nom d'origine" DataValueField = "ID" ci-dessus, il est revenir sur l'ID. Mais j'ai besoin d'obtenir du texte. Si j'ai changé Datavaluefield, alors cela fonctionne.


Désolé Slugster, je n'ai pas vérifié votre réponse! :-) Les grands esprits se soient réputés.


@Kumar, je ne comprends pas, ça marche ou y a-t-il quelque chose que je dois regarder?


Ouais j'ai changé le peu de code maintenant c'est bon. Merci beaucoup



0
votes

Si vous ne voulez pas utiliser

    var VarName = $('#<%=YouDropDownId.ClientId %>').val();


0 commentaires