2010-07-22 2 views
4

Les pages de mon projet sont la base sur les pages maître et de contenu ...

Je veux faire quelque chose avec javascript (plutôt que jquery) dans l'une des pages de contenu après TOUS lES ÉLÉMENTS dE MAÎTRE ET cONTENU SONT CHARGÉS COMPLÈTEMENT (par exemple mettre l'accent sur un contrôle RadComboBox)

pour faire que je le code ci-dessous:.

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 

    <script src="../JQuery/jquery-1.4.1.js" language="javascript" type="text/javascript"></script> 


    <script type="text/javascript"> 

     onload = onloadOfDocument; 

     function onloadOfDocument() { 

      var combo = $find("<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>"); 
      alert(combo); 
      var comboInput = combo.get_inputDomElement(); 
      comboInput.focus(); 
     } 

    </script> 
</asp:Content> 

Mais alert(combo); retourne toujours null (le code $find est pour les contrôles Telerik et les codes supérieurs sur les contrôles de Telerik sont tout à fait vrai)

Pour résoudre ce problème null je teste les façons indiquées ci-dessous:.

1- Je supprimé tous les contrôles de la page principale et contenu, sauf problème RadComboBox contrôle et nul disparu, donc je tirais la peoblem nulle est sur tous les éléments de la page principale et le contenu ont pas été chargés lorsque

$find("<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>");

est activé.

2- donc j'utilisé

$(document).ready(function() { my codes });

au lieu de

onload = onloadOfDocument;

mais le problème ne résoud pas - je ne sais pas pourquoi !!!

3- enfin i tester le code ci-dessous et il fonctionne parfaitement:

<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="server"> 

<script src="../JQuery/jquery-1.4.1.js" language="javascript" type="text/javascript"></script> 


<script type="text/javascript"> 

    //onload = onloadOfDocument; 
     document.onkeyup = onkeyupOfDocument; 

    function onkeyupOfDocument() { 

     var combo = $find("<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>"); 
     alert(combo); 
     var comboInput = combo.get_inputDomElement(); 
     comboInput.focus(); 
    } 

</script> 

Quelle est la fonction du document dois-je utiliser pour faire des codes javascript après tous ELEMENTS MASTER ET CONTENU sont chargés complètement?

Merci à l'avance future

+0

Voir http://stackoverflow.com/questions/760762/jquery-supports-function-pageload-and-ready/2469913#2469913 –

Répondre

0

Ne serait-il:

var combo=$("#<%= RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID %>")[0]; 

?

(En supposant que RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID décide de l'attribut id d'un élément dans le DOM)

+0

C'est ce que j'aurais pensé que le problème est aussi. La méthode la plus simple pour vérifier si $ (document) .ready (function() {}); fonctionne est d'ajouter une alerte ... et ensuite d'ajouter le code que vous voulez exécuter là-bas. Il donne un moyen simple et propre de déterminer si jQuery est en cours de chargement. –

+0

var combo = $ ("# <% = RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID%>") [0]; -> cette syntaxe est incorrecte ... ============ i test $ (document) .ready (function() {}); avec alerte et alerte fonctionne bien - mais $ find renvoie toujours la valeur nulle ... – MoonLight

+0

Umm. Pourquoi est-ce incorrect? Qu'essayez-vous de faire? Obtenir l'élément avec ID RadcbPersonelCompleteNameInvwNoskhehEdit.ClientID, ou ai-je mal compris? Je n'ai jamais vu $ trouver avant. – spender

Questions connexes