这是我的代码
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
,则正确地返回second value
。一旦我将first value
作为错误(少于first value
})第一次并在第二次返回undefined
时给出了正确的值(大于undefined
} ...
为什么它会在second
上返回100
尝试..
演示链接:http://jsbin.com/balufete/1/edit?js,output
请尝试这样
第一
将第一个值设为101
&
将第二个值设为101
它将返回100
第二
将第一个值设为10
&
将第二个值设为101
&
再次给出undefined
的第二个值
它将返回{{1}}
答案 0 :(得分:4)
您还需要return
递归函数的值。
return secondval_prompt(firstval);
请注意,您当前正在对提示中输入的 text 值进行比较。由于各自的字母顺序,"5"
将被视为高于"10"
。您可能希望parseInt
两个输入:
if(parseInt(secondval, 10) > parseInt(firstval, 10))
您还应该将firstval
同样的有效性测试应用于secondval
。目前,您的代码将接受firstval
的非数字值。