2017-07-04 1 views
0

Berechnung Ausgabe Javascript wenn ein Raum

function divideBy() { 
 
    var w = document.getElementById("first").value; 
 
    var x = document.getElementById("second").value; 
 
    var y = w/x; 
 
    y = y.toFixed(2); 
 
    var z = y; 
 
    document.getElementById("answer").innerHTML = z; 
 
    var a = document.getElementById("first1").value; 
 
    var b = document.getElementById("second1").value; 
 
    var c = a/b; 
 
    var d = c; 
 
    d = d.toFixed(2); 
 
    var e = d 
 
    document.getElementById("answer1").innerHTML = e; 
 
    document.getElementById('modal').style.visibility = 'hidden'; 
 
    document.getElementById('modal1').style.visibility = 'hidden'; 
 
}
<tr> 
 
    <td class="normal"> 
 
    <div align="right">SGST @ 9% :</div> 
 
    </td> 
 
    <td nowrap class="normal"> 
 
    <div align="right"> 
 
     <div id="divCheckbox1" style="display: none;"> 
 
     <input type="number" step=0.001 id="first" value=1 000> 
 
     <input type="number" step=0.001 id="second" value=2 .0> 
 
     </div> 
 
     <button type="button" id="modal1" onclick="divideBy()"></button> 
 
     <span id="answer"></span> 
 
     <span style="display:inline-block; width: 5;"></span> 
 
    </td> 
 
    <tr> 
 
    <td class="normal"> 
 
     <div align="right">CGST @ 9% :</div> 
 
    </td> 
 
    <td nowrap class="normal"> 
 
     <div align="right"> 
 
     <div id="divCheckbox" style="display: none;"> 
 
      <input type="number" step=0.001 id="first1" value=1 000> 
 
      <input type="number" step=0.001 id="second1" value=2 .0> 
 
     </div> 
 
     <button type="button" id="modal" onclick="divideBy()"></button> 
 
     <span id=answer1></span> 
 
     <span style="display:inline-block; width: 5;"></span> 
 
    </td>

+0

Willkommen bei StackOverflow! Können Sie bitte genau erklären, was Ihr Problem ist? Was erwartest du und was passiert stattdessen? Damit wir Ihnen besser helfen können, teilen Sie uns bitte mehr ** über ** Ihren Code mit. Es wäre auch hilfreich, wenn Sie uns mitteilen könnten, was Sie bisher versucht haben, um Ihr Problem zu lösen. Weitere Informationen finden Sie in der Hilfe zu [** Wie stelle ich gute Fragen?] (Http://stackoverflow.com/help/how-to-ask) und auf der [** Tour der Site **] (http://stackoverflow.com/tour) :) –

+0

Also das Problem ist mit das Skript berechnet nicht 1 000 als 1000, wobei der Wert als 1 betrachtet wird. –

+0

weil "Wert = 1 000" bedeutet Attributwert = 1 und ein (ignoriertes) Attribut namens "000" ... HTML ist sehr verwerfend mit "Müll" -Attributen –

Antwort

0

function removeSpace(text){ 
 
     return text.replace(/\s/g,''); 
 
    } 
 
    
 
     function divideBy() { 
 
      var w = removeSpace(document.getElementById("first").value); 
 
      var x = removeSpace(document.getElementById("second").value); 
 
      var y = w/x; 
 
      y = y.toFixed(2); 
 
      var z = y; 
 
      document.getElementById("answer").innerHTML = z; 
 
      var a = removeSpace(document.getElementById("first1").value); 
 
      var b = removeSpace(document.getElementById("second1").value); 
 
      var c = a/b; 
 
      var d = c; 
 
      d = d.toFixed(2); 
 
      var e = d 
 
      document.getElementById("answer1").innerHTML = e; 
 
      document.getElementById('modal').style.visibility = 'hidden'; 
 
      document.getElementById('modal1').style.visibility = 'hidden'; 
 
     }
 
 
    <table> 
 
     <tr> 
 
      <td class="normal"> 
 
      <div align="right">SGST @ 9% :</div> 
 
      </td> 
 
      <td nowrap class="normal"> 
 
      <div align="right"> 
 
       <div id="divCheckbox1" > 
 
       <input type="text" step=0.001 id="first" value="1 000"/> 
 
       <input type="text" step=0.001 id="second" value="2 .0"/> 
 
       </div> 
 
       <button type="button" id="modal1" onclick="divideBy()">click here </button> 
 
       <span id="answer"></span> 
 
       <span style="display:inline-block; width: 5;"></span> 
 
       </div> 
 
      </td> 
 
      </tr> 
 
      <tr> 
 
      <td class="normal"> 
 
       <div align="right">CGST @ 9% :</div> 
 
      </td> 
 
      <td nowrap class="normal"> 
 
       <div align="right"> 
 
       <div id="divCheckbox"> 
 
        <input type="text" step=0.001 id="first1" value="5 000"/> 
 
        <input type="text" step=0.001 id="second1" value="3 .0"/> 
 
       </div> 
 
       <button type="button" id="modal" onclick="divideBy()">Click here1</button> 
 
       <span id=answer1></span> 
 
       <span style="display:inline-block; width: 5;"></span> 
 
       </div> 
 
      </td> 
 
      </tr> 
 
      </table> 
 
      
 

+0

Kontering Ich würde den Code benötigen, um mit den weißen Räumen zu arbeiten. es sollte 1 000 als 1000 akzeptieren –

+0

@RalphLobo Ich habe Eingabe von Nummer in Text aktualisiert. aber für die Textbox-Kontrolle, müssen Sie eine numerische Validierung –

+0

@RalphLobo: Ich antworte nur aktualisiert. Jetzt können Sie mit der obigen Lösung versuchen. :-) –

0

Entfernen Sie einfach weiße Flächen von Eingangseingangswert bei der Berechnung, bevor irgendetwas zu verarbeiten.

function divideBy() { 
 
       var w = document.getElementById("first").value; 
 
       var temp1=''; 
 
       for(var i=0; i < w.length; i++){ //Remove white spaces 
 
        if(w.charAt(i)!==' ') 
 
         temp1+=w.charAt(i); 
 
       } 
 
       
 
       var x = document.getElementById("second").value; 
 
       var temp2=''; 
 
       for(var i=0; i < x.length; i++){ //Remove white spaces 
 
        if(x.charAt(i)!==' ') 
 
         temp2+=x.charAt(i); 
 
       } 
 
       
 
       w=parseFloat(temp1); 
 
       x=parseFloat(temp2); 
 
       
 
       var y = w/x; 
 
       y = y.toFixed(2); 
 
       var z = y; 
 
       document.getElementById("answer").innerHTML = z; 
 
       var a = document.getElementById("first1").value; 
 
       var b = document.getElementById("second1").value; 
 
       var c = a/b; 
 
       var d = c; 
 
       d = d.toFixed(2); 
 
       var e = d 
 
       document.getElementById("answer1").innerHTML = e; 
 
       document.getElementById('modal').style.visibility = 'hidden'; 
 
       document.getElementById('modal1').style.visibility = 'hidden'; 
 
      }

+0

Ich würde den Code benötigen, um mit den Leerstellen zu arbeiten. –

+0

Alle vorgeschlagenen Antworten funktionieren mit Leerzeichen. Wenn Sie Ihren Compiler benötigen, um Leerzeichen zu akzeptieren, dann ist dies eine falsche Anforderung. Stattdessen schreiben Sie einen Code, der Leerstellen akzeptiert - entfernt sie - und verarbeitet dann die Eingabe. –

+0

Ich habe den Code ausprobiert.es immer noch den Eingangswert von 1 000 als 1, aber nicht 1000 –

0

Da sagte man seine Nummer, seine nur den Wert vor Platz nehmen.

Html:

<tr> 
<td class="normal"> 
<div align="right">SGST @ 9% :</div> 
</td> 
<td nowrap class="normal"> 
<div align="right"> 
    <div id="divCheckbox1" style="display: none;"> 
    <input step=0.001 id="first" value="1 000"> 
    <input step=0.001 id="second" value="2 .0"> 
    </div> 
    <button type="button" id="modal1" onclick="divideBy()"></button> 
    <span id="answer"></span> 
    <span style="display:inline-block; width: 5;"></span> 
</td> 
</td> 
</tr> 
<tr> 
<td class="normal"> 
    <div align="right">CGST @ 9% :</div> 
</td> 
<td nowrap class="normal"> 
    <div align="right"> 
    <div id="divCheckbox" style="display: none;"> 
     <input step=0.001 id="first1" value="1 000"> 
     <input step=0.001 id="second1" value="2 .0"> 
    </div> 
    <button type="button" id="modal" onclick="divideBy()"></button> 
    <span id=answer1></span> 
    <span style="display:inline-block; width: 5;"></span> 
</td> 
</td> 
</tr> 

JS:

function divideBy() { 
var w = document.getElementById("first").value ; 
var x = document.getElementById("second").value; 
var y = w.replace(" ","")/x.replace(" ",""); 
y = y.toFixed(2); 
var z = y; 
document.getElementById("answer").innerHTML = z; 
var a = document.getElementById("first1").value; 
var b = document.getElementById("second1").value; 
var c = a.replace(" ","")/b.replace(" ",""); 
var d = c; 
d = d.toFixed(2); 
var e = d 
document.getElementById("answer1").innerHTML = e; 
document.getElementById('modal').style.visibility = 'hidden'; 
document.getElementById('modal1').style.visibility = 'hidden'; 
} 
0

Da die Menschen haben in den Kommentaren Wert = 1 000 nicht funktionieren wies darauf hin, weil ich und Sie können siehe 1000 als 1000 aber der Computer kann nicht. Es wird als Wert = 1 angenommen (000 wird ignoriert). So können Sie es als Wert = 1000 ans auch in der nächsten Zeile Wert = 2,0 schreiben. geben Sie keine Leerzeichen zwischen den Ziffern (weil die Sprache, die nicht erlaubt ist.

auch Sie in jedem tr nicht schließen beide divs sind.

Also, um den Code Arbeit zu machen, alles, was Sie tun müssen, ist ändern Sie den Wert = 1 000 auf den Wert = 1000 und Wert = 2 0,0 auf den Wert = 2,0, und prüfen Sie alle Elemente richtig platziert nach HTML-Syntax.

Dieser Code-Schnipsel funktioniert nach Ihren JavaScript-Code.

function divideBy() { 
 
    var w = document.getElementById("first").value; 
 
    var x = document.getElementById("second").value; 
 
    var y = w/x; 
 
    y = y.toFixed(2); 
 
    var z = y; 
 
    document.getElementById("answer").innerHTML = z; 
 
    var a = document.getElementById("first1").value; 
 
    var b = document.getElementById("second1").value; 
 
    var c = a/b; 
 
    var d = c; 
 
    d = d.toFixed(2); 
 
    var e = d 
 
    document.getElementById("answer1").innerHTML = e; 
 
    document.getElementById('modal').style.visibility = 'hidden'; 
 
    document.getElementById('modal1').style.visibility = 'hidden'; 
 
}
<table> 
 
<tr> 
 
    <td class="normal"> 
 
    <div align="right">SGST @ 9% :</div> 
 
    </td> 
 
    <td nowrap class="normal"> 
 
    <div align="right"> 
 
     <div id="divCheckbox1" style="display: none;"> 
 
     <input type="number" step=0.001 id="first" value=1 000> 
 
     <input type="number" step=0.001 id="second" value=2 .0> 
 
     </div> 
 
     <button type="button" id="modal1" onclick="divideBy()"></button> 
 
     <span id="answer"></span> 
 
     <span style="display:inline-block; width: 5;"></span> 
 
     </div> 
 
    </td> 
 
    <tr> 
 
    <td class="normal"> 
 
     <div align="right">CGST @ 9% :</div> 
 
    </td> 
 
    <td nowrap class="normal"> 
 
     <div align="right"> 
 
     <div id="divCheckbox" style="display: none;"> 
 
      <input type="number" step=0.001 id="first1" value=1000> 
 
      <input type="number" step=0.001 id="second1" value=2.0> 
 
     </div> 
 
     <button type="button" id="modal" onclick="divideBy()"></button> 
 
     <span id=answer1></span> 
 
     <span style="display:inline-block; width: 5;"></span> 
 
     </div> 
 
    </td> 
 
    </table>

+0

ich stimme zu, aber gibt es eine Möglichkeit, ich kann den Computer 1000 als 1000 akzeptieren –