J'essaie de faire des choses en jQuery en utilisant ASP.NET. Mais l'identifiant de Je l'utilisais pour obtenir l'identifiant de cette situation: P> runat = "serveur" code> n'est pas identique à celui utilisé dans HTML. < input runat="server" id="txtTest" value="test" />
8 Réponses :
puis: p> <% = txtestest.clientid%> code> doit fonctionner mais pas dans un fichier JavaScript séparé où les scripts latéraux du serveur n'exécutent pas. Une autre possibilité est d'utiliser un sélecteur de classe:
Wow! Cela fonctionne ... J'ai mis ma fonction dans ma page ASCX, et cela fonctionne maintenant. La partie de classe que je connaissais (mais merci aussi pour la pointe), et cela fonctionne dans un JavaScript séparé (en classe). Il y a aucun moyen b> à Runat Server ID fonctionne dans ma page Function.js? script_path: b> script / fonction.js ascx_path: b> composants / contact.Scx Cordialement
Il n'y a aucun moyen de mettre le code d'identification ASP.NET dans un fichier JS, ASP.NET ne regardera pas à l'intérieur là pour mettre sa valeur.
Pour éviter les problèmes avec les identifiants rendus, utilisez plutôt une classe. Cela ne changera pas pendant le rendu: html: p>
Aussi regarde beaucoup Natre pourrais-je ajouter
Il pourrait ne pas fonctionner comme prévu: la classe in jQuery était txttest code>, dans HTML diffère: txttext code> - TYPO?
Essayez de le mettre dans un nom de variable: Je ne sais pas si le <% = code> aime être dans des guillemets doubles. J'ai toujours eu des comportements mitigés lorsqu'il n'utilise pas la citation unique. P> p>
Cela ne fonctionne pas aussi. Même chose que mon échantillon, mais merci pour le conseil de toute façon = D PS: J'ai utilisé les guillemets simples cette fois-ci. = X
Lorsque vous utilisez ASP.NET 4 et la clientIdMode est définie sur "prévisible", vous pouvez prédire l'ID basé sur la hiérarchie. Ou réglez-le défini sur "statique", donc ASP.NET ne le gâte pas. P>
article de Scotgu sur celui-ci http://weblogs.asp.net/scotgu/archive/2010/03/30/cleaner-html- Markup-with-ASP-Net-4-Web-Forms-Client-IDS-VS-2010-and-Net-4-0-Series.aspx P>
Et ceci est extrêmement utile lorsque vous utilisez des scénarios de fichiers JS externes. P>
comme Darin Dimitrov dit dans sa réponse:
code> strong> devrait fonctionner mais pas dans un javascript séparé Fichier où les scripts latéraux du serveur n'exécutent pas strong>. p> blockQuote>Les solutions que je pouvais trouver pour celles-ci sont: p>
xxx pré>
- Utilisez
class code> au lieu deID code> li> ul>Utilisation de la classe, vous pouvez récupérer la valeur n'importe où. C'est l'une des meilleures solutions (généralement les meilleures) p>
xxx pré>
- Utilisez
ClientID CODE> CODE dans leASPX CODE> LI> ul>Vous pouvez toujours appeler
clientide code> dans l'ASPX, mais si vous travaillez avec une sorte de structure, ce n'est pas la meilleure solution. J'aime utiliser cette méthode lorsque je teste quelque chose. P>xxx pré> Vous pouvez également utiliser
clientide code> dans un fichier JS externe avec une solution de contournement. Ce n'est pas joli fort>, utilisez uniquement si vous en avez vraiment besoin. Je fais habituellement cela lorsque j'utiliseTelerik code>. P>dans l'ASPX: p>
xxx pré> dans le fichier JS: P >
var value = $('#txtTest').val();
- Utilisez Control.ClientidMode de propriété
statique code> li> ul>de sorte que le HTML devienne p>
xxx pré> et que le JS peut l'appeler comme il est nommé p>
xxx pré> P> Le problème avec cette solution est que vous devez être très fort> prudent pour éviter la duplicité sur le IDS code> de votre page. Essayez jamais d'utiliserMode statique code> dans un contrôleur. P>comme états MSDN: P>
La valeur clientide est définie sur la valeur de la propriété ID. Si la Le contrôle est un conteneur de nommage, le contrôle est utilisé comme le dessus de la Hiérarchie de conteneurs de dénomination pour tous les contrôles qu'il contient. P> blockQuote>
Le lien de La réponse de Shaans est un endroit génial pour vérifier des informations supplémentaires sur la clientIdMode. p>
Nettoyant HTML Markup avec ASP.NET 4 Formulaires Web - ID de client (VS 2010 et série 4.0) p> p>
Comme d'autres personnes ont mentionné, vous pouvez passer un sélecteur de classe à JQuery, mais c'est un peu désordonné. Je préfère utiliser le Attribut JQuery se termine par sélecteur . Étant donné qu'un identifiant généré est une hiérarchie aplatie de commandes, vous pouvez utiliser les "extrémités avec" sélecteur pour trouver votre élément.
$("input[id$='txtText']")
dans WebForm / HTML Page ....
var UserName = $("[id*=txtUserName]").val();
alert(UserName);
Cette méthode est pour ... ASP.NET Control ...
Cette réponse fonctionnera - si vous souhaitez sélectionner des éléments que ID contient B> une chaîne donnée ..
Ajout d'une classe CSS à l'entrée puis à l'aide de cette classe dans JQuery pour que l'élément d'entrée résoudra le problème. P>
Des questions que nous prévoyons des tentatives de code. Même nous pouvons utiliser le code dans nos réponses pour illustrer.
Qu'est-ce que cela résulte effectivement pour l'ID de la zone de texte et le% = txtest.clientid%>?