2016-04-14 17 views
2

Es war ein Tag, der versuchte, die Lösung herauszufinden. aber erfolglos. Ich versuche nur, eine prozentuale Berechnungstabelle für meine Schüler zu erstellen. Hier ist meine ASPX CodeProzentsatz in Label basierend auf zwei Textboxwerten ohne AutoPostBack berechnen

<%@ Page Title="" Language="C#" ClientIDMode="Static" MasterPageFile="~/MasterPage.master" AutoEventWireup="true" CodeFile="Default3.aspx.cs" Inherits="Default3" %> 
 

 
<asp:Content ID="Content1" ContentPlaceHolderID="head" runat="Server"> 
 
    <script type="text/javascript" src="js/jquery.js"></script> 
 
    <script> 
 
     $(document).ready(function() { 
 
      $("#txt1").val(""); 
 
      $("#txt2").val(""); 
 
     }); 
 
     function txtHSpercentage() { 
 
      ch1 = $("#txt1").val(); 
 
      ch2 = $("#txt2").val(); 
 
      ch3 = (ch1/100) * ch2; 
 
      document.getElementById("#txthsP").value = (ch3.toFixed(2)); 
 
     } 
 
    </script> 
 
    <style> 
 
     #table1 
 
     { 
 
      border: solid thin black; 
 
     } 
 

 
      #table1 td 
 
      { 
 
       border: solid thin black; 
 
       width: 30px; 
 
       text-align: center; 
 
      } 
 
    </style> 
 
</asp:Content> 
 
<asp:Content ID="Content2" ContentPlaceHolderID="ContentPlaceHolder1" runat="Server"> 
 
    <table id="table1" style="background-color: lightgray; width: 50%; border: solid thin black; margin-top: 100px"> 
 
     <tr> 
 
      <td>HS</td> 
 
      <td> 
 
       <asp:TextBox ID="txt1" runat="server" Width="90%" onkeyup="txtHSpercentage()"></asp:TextBox> 
 
      </td> 
 
      <td> 
 
       <asp:TextBox ID="txt2" runat="server" Width="90%" onkeyup="txtHSpercentage()"></asp:TextBox> 
 
      </td> 
 
      <td> 
 
       <asp:Label ID="txthsP" runat="server" Width="90%" ForeColor="Black" /> 
 
      </td> 
 
     </tr> 
 
    </table> 
 
</asp:Content>

Sein gar nicht funktioniert. Ich möchte nur den Wert erhalten, wenn Benutzer Wert in TxthsMO eingeben. sollte es wie Taschenrechner funktionieren. ist es möglich oder nicht. Bitte um Hilfe .....

UPDATE: - in ViewpageSource seine zeigt wie:

<!DOCTYPE html> 
 

 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head><title> 
 

 
</title> 
 
    <script type="text/javascript" src="http://ff.kis.scr.kaspersky-labs.com/1B74BD89-2A22-4B93-B451-1C9E1052A0EC/main.js" charset="UTF-8"></script><script type="text/javascript" src="js/jquery.js"></script> 
 
    
 
    
 
    <script type="text/javascript" src="js/jquery.js"></script> 
 
    <script> 
 
     $(document).ready(function() { 
 
      $("#txt1").val(""); 
 
      $("#txt2").val(""); 
 
     }); 
 
     function txtHSpercentage() { 
 
      ch1 = $("#txt1").val(); 
 
      ch2 = $("#txt2").val(); 
 
      ch3 = (ch1/100) * ch2; 
 
      document.getElementById("#txthsP").value = (ch3.toFixed(2)); 
 
     } 
 
    </script> 
 
    <style> 
 
     #table1 
 
     { 
 
      border: solid thin black; 
 
     } 
 

 
      #table1 td 
 
      { 
 
       border: solid thin black; 
 
       width: 30px; 
 
       text-align: center; 
 
      } 
 
    </style> 
 
</head> 
 
<body> 
 
    <form method="post" action="Default3.aspx" id="form1"> 
 
<div class="aspNetHidden"> 
 
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="cHuYm1VLP9az8bfSVVpFYL2zGIUY+7Jr6iWOLhPF2jhHns5K4u5zhkPWMkN6qiw6WsTTsDIUJxBVutesBKtzOj66kjVPVjPxzF+wz+3Mhv4=" /> 
 
</div> 
 

 
<div class="aspNetHidden"> 
 

 
\t <input type="hidden" name="__EVENTVALIDATION" id="__EVENTVALIDATION" value="8sEsxlU6EE+aaqKCbHV0992JS44nu7cKDzulDBEkeZthEts5PY0j05tUanKAHJUYfsL+0tG8j9r4ULWq62a4zj93fDQwm/vzykw31K+1sP1ly4FihsKHIqZ16Y1cXWKlNgOgZ9xj22pI9+Dc7uRCyw==" /> 
 
</div> 
 
    <div> 
 
     
 
    <table id="table1" style="background-color: lightgray; width: 50%; border: solid thin black; margin-top: 100px"> 
 
     <tr> 
 
      <td>HS</td> 
 
      <td> 
 
       <input name="ctl00$ContentPlaceHolder1$txt1" type="text" id="txt1" onkeyup="txtHSpercentage()" style="width:90%;" /> 
 
      </td> 
 
      <td> 
 
       <input name="ctl00$ContentPlaceHolder1$txt2" type="text" id="txt2" onkeyup="txtHSpercentage()" style="width:90%;" /> 
 
      </td> 
 
      <td> 
 
       <span id="txthsP" style="display:inline-block;color:Black;width:90%;"></span> 
 
      </td> 
 
     </tr> 
 
    </table> 
 

 
    </div> 
 
    </form> 
 
</body> 
 
</html>

Ich habe ClientIDMode = "Static" oben auf der Seite Bitte beachten Sie auch Hilfe ...

+1

Sie sind nicht weit von der Lösung entfernt. WebForms generiert kombinierte IDs, sodass Sie den generierten HTML-Code im Browser mithilfe von "Quelle anzeigen" überprüfen müssen. Es wird etwas entlang der Linie von xxx_Content: 2_txt1 sein. Wenn Sie diese IDs in Ihrem jquery-Code verwenden, sollten Sie in der Lage sein, die Werte zu lesen/schreiben. Zu Debuggingzwecken können Sie alert ($ ("# idtotest"). Length) verwenden, um sicherzustellen, dass das ausgewählte Element tatsächlich existiert. – schudel

Antwort

3

Erste Sache: Sie sollten txt1 und txt2 in Ihrem Code anstelle vonverwendenund Text2.

Da die ID jedes TextBox wird wahrscheinlich mit dem Namen eines Behälters kombiniert (wie in @ Schudel Kommentar erwähnt), die folgende Syntax ist ein sicherer Weg, um die korrekte ID zu erhalten:

var ch1 = $("#<%= txt1.ClientID %>").val(); 
var ch2 = $("#<%= txt2.ClientID %>").val(); 
var ch3 = (ch1/100) * ch2; 
$("#<%= txthsP.ClientID %>").text(ch3.toFixed(2)); 

Eine Alternative wäre die ClientIDMode des TextBox Static einzustellen:

<asp:TextBox ID="txt1" runat="server" ClientIDMode="Static" ... /> 

, die die ursprüngliche ID bewahrt. Sie können es dann verwenden, um das Steuerelement abzurufen:

$("#txt1") 
+0

ich füge hinzu, wie du gesagt hast. aber es funktioniert noch nicht. bitte helfen –

+0

In code-behind, können Sie auf 'txt1' zugreifen? Zum Beispiel können Sie schreiben: 'string s = txt1.Text;'? Wenn dies der Fall ist, sollte die Syntax "ClientID" funktionieren. Wenn Sie eine Warnung in Ihre 'txtHSpercentage'-Funktion schreiben, wie zum Beispiel' alert ($ ("# <% = txt1.ClientID%>"). Val()); ', zeigt es den in dieser TextBox gefundenen Wert an? – ConnorsFan

+0

Ich aktualisierte meine Frage .. bitte helfen Sie –

Verwandte Themen