2017-03-30 42 views
0

我想添加一個函數,如果用戶輸入非數字值,則將vticketqty設置爲0。我已經嘗試了一些東西,但是我的代碼從未正常工作,如果我添加了該功能,所以我顯然做錯了什麼。Javascript - 無法插入函數

這是我使用的功能:

function NaN(){ 
    if (isNaN(TicketQty)) TicketQty = 0; 
    } else { 
    return TicketQty 
} 

我不知道但其正確的,我不能完全肯定這個功能應該放在代碼中。這是我的JavaScript代碼。任何幫助,將不勝感激。

var vTicketType; 
var vTicketQty; 
var vTicketPrice; 
function calcTotal() { 
    vTicketType = prompt("Enter Ticket Type").toUpperCase(); 
    document.write("<br>"); 
    vTicketQty = prompt("Enter No. of Tickets"); 
    calcPrice(); 
    vTicketQty = parseInt(vTicketQty); 
    document.write("<br>"); 
    document.write("Type of Ticket:" + vTicketType); 
    document.write("<br>"); 
    document.write("Number of Tickets:" + vTicketQty); 
    document.write("<br>"); 
    var vTotalPayment =(vTicketPrice) * (vTicketQty); 
    if (vTotalPayment >0) { 
     document.write("Total Payment is: $" + vTotalPayment); 
     vTicketPrice = parseInt(vTicketPrice); 
    } else { 
     document.write("INVALID") 
    } 
} 



function calcPrice(){ 
    if (vTicketType == 'A') { 
     vTicketPrice = 50; 
    } else if (vTicketType == 'B') { 
     vTicketPrice = 30; 
    } else if (vTicketType == 'C'){ 
     vTicketPrice = 10; 
    } 
    else { 
     vTicketPrice = -1; 
    } 
} 
+0

不要使用'document.write()的'在代碼中在頁面加載後運行。它會消滅你的頁面。 – Barmar

+0

請勿使用全局變量,請使用函數參數和返回值。 – Barmar

回答

0

取而代之的是:

document.write("<br>"); 
vTicketQty = prompt("Enter No. of Tickets"); 
calcPrice(); 
vTicketQty = parseInt(vTicketQty); 
document.write("<br>"); 

試試這個。

document.write("<br>"); 
while (isNaN(vTicketQty)) { 
    vTicketQty = prompt("Enter No. of Tickets"); 
    calcPrice(); 
    vTicketQty = parseInt(vTicketQty); 
    if (isNaN(vTicketQty)) { 
     alert("Quantity must be a number"); 
    } 
} 
document.write("<br>"); 

編輯 - 根據要求。

document.write("<br>"); 
vTicketQty = prompt("Enter No. of Tickets"); 
calcPrice(); 
vTicketQty = parseInt(vTicketQty); 
if (isNaN(vTicketQty)) { 
    vTicketQty = 0; 
} 
document.write("<br>"); 

EDITED - 更像

1功能)

document.write("<br>"); 
calcPrice(); 
vTicketQty = getQty(); 
document.write("<br>"); 

function getQty() { 
    qty = parseInt(prompt("Enter No. of Tickets")); 
    if (isNaN(qty)) { 
     return 0; 
    } 
    return qty; 
} 

2)

document.write("<br>"); 
vTicketQty = prompt("Enter No. of Tickets"); 
calcPrice(); 
vTicketQty = checkNaN(parseInt(vTicketQty)); 
document.write("<br>"); 


function checkNaN(qty) { 
    if (isNaN(qty)) { 
     return 0; 
    } 
    return qty; 
} 
+0

感謝這工作,但我想ticketqty設置爲0而不是提示設置爲一個循環。有沒有簡單的方法來做到這一點? – Mithrandir

+0

我編輯了我的貼子。所以它有兩個解決方案。您需要的解決方案以及其他人可能更喜歡的原始解決方案,如果他們遇到類似問題。 – noyanc

+0

謝謝,有沒有辦法讓它成爲一個函數? – Mithrandir