getElementById in separate js-Datei nicht finden ASP.net Kontrolle

Wenn ich dieses in die markup der Seite funktioniert es einwandfrei:

<script type="text/javascript">
    function bought1()
    {
        var s = '<%= Button2.ClientID %>';
        var v = document.getElementById(s);
        v.click();
    }    
</script>

Aber wenn ich die gleiche Sache in einer separaten Datei, auch wenn die Funktion ist ausgeführt - den Wert der v bleibt null.

Habe ich versucht mit einem einfachen div und es hat finden Sie die div.

Warum nicht finden ASP.net Button?

BEARBEITEN

Ich auch noch ClientIDMode="Static" auf die Schaltfläche. Keine änderung.

  • Sie überprüft die tatsächliche gerenderten html auf beiden Seiten?
  • Ich habe mit IE und FF js-Debugger - Sie geben beide eine null für v.
  • Einen sofortigen "fix" wäre, um ihm eine Klasse und target-Klasse. Wenn in einer separaten JS-Datei, die <%= Button2.ClientID %> hat nicht Holen Sie ausgewertet, da JavaScript-Dateien werden nicht ausgewertet, indem die ASP.NET server - Sie serviert wird, statisch.
  • ich meine, die Ansicht der eigentlichen Quelle. Sehen, was gerendert wird für var s = '<%= Button2.ClientID %>'; etc...
  • auch, wie @ian sagt - die server-tags <% %> funktioniert nicht in einem separaten .js-Datei.
  • Es zeigt nur <script type='text/javascript' src='JScript1.js'></script>.
  • Wenn Sie ClientIDMode="Static", dann ändern Sie Ihren code ein: var s = 'Button2'; (und stellen Sie sicher, dass Sie den cache Ihres Browsers leeren und die Seite neu laden)
  • Ich habe es '<%= Button2 %>'. Aber von Gewinnen Antwort, vorausgesetzt, es ist richtig, sehe ich, dass das nicht helfen wird. (Button2 natürlich.) Danke.
  • er meinte es ändern zu var s = 'Button2'; und nicht var s = '<%= Button2 %>'; tun Sie dies, nachdem Sie ClientIDMode="Static" auf Ihre Schaltfläche

InformationsquelleAutor ispiro | 2013-07-17
Schreibe einen Kommentar