2017-03-21 6 views
0

Ich habe Probleme beim Zuweisen einer Eingabe einen bestimmten Wert. Wenn der Benutzer beispielsweise über die TicketType-Eingabeaufforderung einen Brief eingibt, möchte ich diesen in eine Zahl konvertieren. Sagen wir also, sie geben 'B' als TicketType ein, ich möchte, dass 'B' in 50 umgewandelt wird, damit ich die Gesamtkosten berechnen kann. Im Moment zeigt TotalPayment nur NaN an und ich bin so verwirrt.Javascript: einen Eingangsbuchstaben einen bestimmten Wert zuweisen

Das ist mein JavaScript-Code:

function ticket() { 

    var TicketType; 
    TicketType = prompt("Please enter the type of ticket you require!"); 
    document.write("<br>"); 
    var TicketQty; 
    TicketQty = prompt("Please enter the number of tickets you require!"); 
    TicketQty = parseInt(TicketQty); 
    document.write("Number of Tickets:" + TicketQty); 
    document.write("<br>"); 
    var TotalPayment =(TicketPrice) * (TicketQty); 
    document.write("Total Payment is:" + TotalPayment); 
    var TicketPrice; 
    TicketPrice = parseInt(TicketPrice); 

    if (TicketType == A) { 
     TicketPrice == 100; 
    } 
    else if (TicketType == B) { 
     TicketPrice == 75; 
    } 
    else if (TicketType == C){ 
     TicketPrice == 50; 
    } 
    else { 
     document.write("Invalid Ticket Type"); 
    } 
} 

Das ist mein HTML-Code:

<html> 
<title>Ticket</title> 
<h1>Ticket</h1> 
<script src="test.js"> </script> 
<script>calculate()</script> 
</body> 

Antwort

0

Versuchen Sie Folgendes:

var TicketType; 
 
var TicketQty; 
 
var TicketPrice; 
 
function calculateticket() { 
 
    TicketType = prompt("Please enter the type of ticket you require!"); 
 
    document.write("<br>"); 
 
    TicketQty = prompt("Please enter the number of tickets you require!"); 
 
    testType(); 
 
} 
 

 
calculateticket(); 
 
function testType(){ 
 
    if(TicketType =='A' || TicketType == 'B' || TicketType == 'C'){ 
 
     if (TicketType == 'A') { 
 
      TicketPrice = 100; 
 
     } else if (TicketType == 'B') { 
 
      TicketPrice = 75; 
 
     } else if (TicketType == 'C'){ 
 
      TicketPrice = 50; 
 
     } 
 
     
 
     TicketQty = parseInt(TicketQty); 
 
     document.body.innerHTML += '<span id="text1"></span>'; 
 
     document.getElementById('text1').innerHTML = 'Total Payment is: '+TicketQty; 
 
     document.write("<br>"); 
 
     var TotalPayment =(TicketPrice) * (TicketQty); 
 
     document.body.innerHTML += '<span id="text2"></span>'; 
 
     document.getElementById('text2').innerHTML = 'Total Payment is: '+TotalPayment; 
 
     TicketPrice = parseInt(TicketPrice); 
 
    } 
 
    else { 
 
     if(document.getElementById('text1') != null){ 
 
      document.getElementById('text1').innerHTML = ''; 
 
     } 
 
     if(document.getElementById('text2') != null){ 
 
      document.getElementById('text2').innerHTML = ''; 
 
     } 
 
     document.write("Invalid Ticket Type"); 
 
    } 
 
}

+0

so vielen Dank !! Eine weitere Frage: Wenn auf der Seite ein ungültiger Tickettyp angezeigt wird, kann ich dies so einrichten, dass nur ein ungültiger Tickettyp und sonst nichts angezeigt wird? – Mithrandir

+0

Hallo Mithrandir, probier das Snippet jetzt. Ich habe den Code geändert. Lassen Sie mich wissen, wenn etwas falsch ist. – Mamun

0

Ihre String-Vergleich ist völlig falsch. Ich beschränke meine Antwort darauf, weil du darum fragst.

if (TicketType == A) { 

Muss sein:

if (TicketType === "A") { 

Auch müssen Sie auf Zuordnung '=' vs. Vergleich klar sein '=='.

Ganze Abschnitt sollte so aussehen:

if (TicketType === "A") { 
    TicketPrice = 100; 
} else if (TicketType === "B") { 
    TicketPrice = 75; 
} else if (TicketType === "C") 
    TicketPrice = 50; 
else { 
    document.write("Invalid Ticket Type"); 
} 

Blick in switch-Anweisungen, wenn Sie eine verkettete if-then-elseif

Es gibt andere Dinge falsch mit Ihrem Code. Here's a jsfiddle mit einigen Korrekturen und Verbesserungen.

0

Sie müssen zwei Dinge ändern:

1: String comparation

if (TicketType == A) 

zu

if (TicketType == 'A') 

2: falsche

TicketPrice == 100 

zu

0 zuweisen
TicketPrice = 100 
Verwandte Themen