J'ai un problème avec une page maître contenant un asp: textbox auquel j'essaye d'accéder en utilisant jQuery. J'ai lu beaucoup de threads à ce sujet et j'ai essayé toutes les différentes approches que j'ai vues, mais peu importe, le résultat final finit par être indéfini.Problème avec jQuery selector et MasterPage
Ceci est la partie pertinente du code MasterPage:
<p><asp:Label ID="Label1" AssociatedControlID="osxinputfrom" runat="server">Navn</asp:Label><asp:TextBox CssClass="osxinputform" ID="osxinputfrom" runat="server"></asp:TextBox></p>
Lorsque je clique sur le bouton, le code suivant du fichier d'un jQuery est exécuté:
show: function(d) {
$('#osx-modal-content .osxsubmitbutton').click(function (e) {
e.preventDefault();
if (OSX.validate()){
$('#osx-modal-data').fadeOut(200);
d.container.animate(
{height:80},
500,
function() {
$('#osx-modal-data').html("<h2>Sender...</h2>").fadeIn(250, function() {
$.ajax({
type: "POST",
url: "Default.aspx/GetDate",
data: "{'from':'" + $("#osxinputfrom").val() + "','mailaddress':'" + $("#osxinputmail").val() + "','header':'Test3','message':'Test4'}",
contentType: "application/json; charset=utf-8",
dataType: "json",
success: function(msg) {
$('#osx-modal-data').fadeOut(200, function() {
$('#osx-modal-data').html('<h2>Meldingen er sendt!</h2>');
$('#osx-modal-data').fadeIn(200);
});
},
error: function(msg){
$('#osx-modal-data').fadeOut(200, function() {
$('#osx-modal-data').html('<h2>Feil oppstod ved sending av melding!</h2>');
$('#osx-modal-data').fadeIn(200);
});
}
});
});
}
);
}
else{
$('#osxinputstatus').fadeOut(250, function() {
$('#osxinputstatus').html('<p id="osxinputstatus">' + OSX.message + '</a>');
$('#osxinputstatus').fadeIn(250);
});
}
});
},
Donc, le problème ici est que $ ("# osxinputfrom"). Val() évalué à Undefined. Je comprends que la page maître ajoutera un préfixe à l'ID, j'ai donc essayé d'utiliser l'ID de la page quand elle est exécutée comme ct100_osxinputfrom, et j'ai aussi essayé d'autres biches que j'ai trouvées en recherchant $ ("# <% = osxinputfrom.ClientID%> "), mais il finit par être non défini dans la méthode appelée de toute façon par la méthode jQuery ajax. Les troisième et quatrième paramètres de la fonction ajay qui est codée en dur comme Test3 et Test4 se passe bien dans la méthode backend C#.
Donc, ma question est simple: Comment puis-je réécrire le sélecteur jQuery pour récupérer la valeur correcte de la zone de texte? (Avant je pages maître il a bien fonctionné par la voie)
Meilleures salutations Daemon
Quelle version d'ASP.NET êtes-vous? Avec la version 4.0, vous pouvez essayer d'utiliser la propriété 'ClientIDMode' pour faciliter la recherche du contrôle lors de l'exécution. –