2014-03-04 38 views
-1

返回undefined這裏是我的代碼同時調用同樣的功能

function secondval_prompt(firstval) { 
    var secondval = prompt("should be greater than 1st value"); 
    if((secondval > firstval) && (secondval != "") && (!isNaN(secondval))) { 
    return secondval; 
    } else { 
    secondval_prompt(firstval); 
    } 
} 

var firstvalue = prompt("Enter 1st value"); 
var secondvalue = secondval_prompt(firstvalue); 
alert(secondvalue); 

如果我的第一次給了second value大於first value其返回second value correctly.Once我給second value爲錯誤的(小於first value)上第一次,並就第二次正確的值(大於first value)交回undefined ...

爲什麼它對second嘗試返回undefined ..

演示鏈接:http://jsbin.com/balufete/1/edit?js,output

請嘗試這樣

首先

先給價值100 & 給二值101 它將返回101

先給價值100 & 給二值10 & 再給二值101 它將返回undefined

+2

你的函數似乎缺少一個return語句 – Mathias

回答

4

您需要return從遞歸函數的值也是如此。

return secondval_prompt(firstval); 

注意,你現在正在做關於在提示符下輸入的文本的比較。由於它們各自的字母順序,"5"將被認爲高於"10"。您可能要parseInt兩個輸入:

if(parseInt(secondval, 10) > parseInt(firstval, 10)) 

你也應該適用firstval,你目前正在向secondval同等法律效力的測試。目前,您的代碼將接受firstval的非數字值。

+0

非常感謝你!!!!!!! – rynhe