2012-04-05 9 views
0

Ich habe ein Textfeld im Anker-Tag. Und ich möchte seinen Wert mit JavaScript erhalten. Mein Code istWie bekomme ich den Wert von Textbox, die in einem Anker Tag mit Javascript ist?

<a rel="tooltip" title="This information comes from the Income/Expense worksheet."> 
    <span class="TooltipTextBox">  
      <asp:TextBox ID="txt_Helo" runat="server" CssClass="small_text_box" ReadOnly="true" TabIndex="-1" BackColor="#CCCCCC" size="15"> 
      </asp:TextBox> 
    </span> 

+0

@limelights - Great link! Und so wahr! – jmort253

Antwort

1

Zuerst müssen Sie die Client-ID der Textbox, um herauszufinden. Tatsächlich ist diese ID unabhängig davon, ob die Textbox in einen Empfänger eingebettet ist oder nicht. Daher können Sie entweder ASP.NET verwenden und wie folgt vorgehen:

<script>var clientID = "<%=txt_hello.ClientID%>"</script> 

Dann können Sie das Textfeld Zugriff mit der ID:

<script>var txtBoxElement = document.getElementById(clientID);</script> 

Und dann können Sie den Wert von txtBoxElement zugreifen.

Der andere Ansatz rein JS beruhen würde, aber Sie würden CSS-Selektoren nicht wissen, so die genaue Client-ID jQuery zum Beispiel verwenden zu nutzen:

<script>var textBoxVal = $("a span.TooltipTextBox input").val();</script> 
0

Ich bin mit asp nicht vertraut, so, nicht sicher, was <asp:TextBox> produziert, aber wenn es eine ID hat, warum es keine Rolle, dass es zu einem Anker ein Kind ist? Warum nicht einfach seinen Wert mit seiner ID abrufen?

+0

Nicht sicher wer abwog, wie Sie richtig sind. Allerdings weist ASP.NET IDs zur Laufzeit zu - etwas wie 'ct100_something_txt_Helo' (basierend auf der Hierarchie des Steuerelements), so dass Sie über' <% = txt_Helo.ClientID%> ' – webnoob

+0

darauf zugreifen, da die Antwort nur eine Folge von ist Fragen, die nicht wirklich erklären, wie man das Problem löst. Berücksichtigen Sie die Bearbeitung, um es klar zu machen, und hinterlassen Sie einen Kommentar, und ich werde gerne den Downvote entfernen :) Diese Antwort ist vage und klärt nicht, ob ich die tatsächliche ID auf dem ASP-Element ("txt_Helo") verwende oder das generierte HTML-Element – jmort253

+0

jmort "Warum nicht einfach seinen Wert mit seiner ID abrufen?" ist eigentlich ein Vorschlag, obwohl es ein? Am Ende. Vielleicht ist Englisch nicht Ihre Muttersprache (es ist auch nicht meine Muttersprache), aber es gibt tatsächlich einen Vorschlag (und wie es passiert, der richtige) in meiner Antwort. Wie auch immer, ich schätze es sehr, dass Sie das abstimmen, denn das hat dazu geführt, dass jemand anderes es abstimmte und mir 8 Punkte einbrachte. –

2

Ich würde JQuery empfehlen (bearbeiten: Wenn Sie mehr JS auf Ihrer Website verwenden und nicht nur verwenden, um diesen Wert zu erhalten). Wenn Sie nur den Text möchte, sollte diese Arbeit:

var Text = $("#<%= txt_Helo.ClientID %>").val(); 

Grundsätzlich greifen Sie auf die TextBox die ID ASP.NET verwenden, um dieses Steuerelement zugewiesen hat.

Ohne JQuery:

var Text = document.getElementById("<%= txt_Helo.ClientID %>").value; 
+0

würden Sie jQuery empfehlen, den Wert einer Textbox zu erhalten ?! Man muss sich fragen, worauf * würdest du jQuery nicht raten? Wenn alles, was Sie haben, ein Hammer ist, sieht jedes Problem bald wie ein Nagel aus. Sie brauchen kein massives Javascript-Framework, wenn Sie nur eine Zeile JavaScript einfügen können! –

+0

Sie verwenden '.val()', um den Wert eines Elements zu erhalten, nicht '.text()'. – ThiefMaster

+1

@Dr. Ein paar KB ist massiv? OK. Habe auch eine Antwort ohne JQuery aufgenommen. Außerdem wurde die Verwendung von JQuery geklärt. – webnoob

1

ich Sie müssen nichts mehr nicht tun erraten als dieses in asp.net

var value = document.getElementById('<% =txt_Helo.ClientID %>').value; 
Verwandte Themen