Javascript:在输入框上未定义,范围从0到10
我有两个按钮(+和-)和一个值为10的输入框。输入必须仅取0到10之间的值,并且我无法理解为什么在输入框上达到0或10后会出现未定义的情况。我尝试对值使用parseInt。但也许我做得不对。谢谢你的帮助Javascript:在输入框上未定义,范围从0到10,javascript,undefined,counter,inputbox,Javascript,Undefined,Counter,Inputbox,我有两个按钮(+和-)和一个值为10的输入框。输入必须仅取0到10之间的值,并且我无法理解为什么在输入框上达到0或10后会出现未定义的情况。我尝试对值使用parseInt。但也许我做得不对。谢谢你的帮助 var fighterScore1=document.getElementById(“fighterScore1”); fighterScore1.value=10; var fighter1Inc=document.getElementById(“fighter1Inc”); var值=10
var fighterScore1=document.getElementById(“fighterScore1”);
fighterScore1.value=10;
var fighter1Inc=document.getElementById(“fighter1Inc”);
var值=10;
FIGHTR1INC.onclick=功能(valor){
fighterScore1.value=增量值(valor);
};
FIGHTR1DEC.onclick=函数(valor){
fighterScore1.value=递减值(值);
};
函数decreaseValue(){
如果(valor=10){
英勇=10;
}否则{
英勇++;
勇敢=勇敢;
回报勇气;
}
};代码>
+
-
问题在于,您只返回小于10或大于0的条件。如果在一个条件下不返回,则没有返回值,因此最终将undefined
赋值给变量。是一个固定的JSFiddle。您必须在if语句之外返回,valor.value
不存在
var fighterScore1=document.getElementById(“fighterScore1”);
fighterScore1.value=10;
var fighter1Inc=document.getElementById(“fighter1Inc”);
var值=10;
FIGHTR1INC.onclick=功能(valor){
fighterScore1.value=递增值();
};
FIGHTR1DEC.onclick=函数(valor){
fighterScore1.value=递减值();
};
函数decreaseValue(){
如果(valor=10){
英勇=10;
}否则{
英勇++;
}
回报勇气;
};代码>
+
-
问题在于,您只返回小于10或大于0的条件。如果在一个条件下不返回,则没有返回值,因此最终将undefined
赋值给变量。是一个固定的JSFiddle。您必须在if语句之外返回,valor.value
不存在
var fighterScore1=document.getElementById(“fighterScore1”);
fighterScore1.value=10;
var fighter1Inc=document.getElementById(“fighter1Inc”);
var值=10;
FIGHTR1INC.onclick=功能(valor){
fighterScore1.value=递增值();
};
FIGHTR1DEC.onclick=函数(valor){
fighterScore1.value=递减值();
};
函数decreaseValue(){
如果(valor=10){
英勇=10;
}否则{
英勇++;
}
回报勇气;
};代码>
+
-
当valor=10
时,实际上没有在分支中返回任何值。如果您忘记在JavaScript中返回一个值,您将在函数末尾得到一个隐式返回,返回值为undefined
要解决此问题,只需在函数末尾或在函数的每个分支中添加/的返回语句
比如说
function decreaseValue() {
if (valor <= 0 ) {
return 0;
}
else {
return valor - 1;
}
}
函数递减值(){
如果(valor对于whenvalor=10
,您实际上没有在分支中返回任何值。如果您忘记在JavaScript中返回值,您将在函数末尾得到一个隐式返回,返回值未定义
要解决此问题,只需在函数末尾或在函数的每个分支中添加/的返回语句
比如说
function decreaseValue() {
if (valor <= 0 ) {
return 0;
}
else {
return valor - 1;
}
}
函数递减值(){
如果(valor代码的问题是,incriseValue
和decreaseValue
中的所有路径都返回了一些内容。这意味着返回未定义的;
。另外(幸运的是)incriseValue
和decreaseValue
不使用参数并使用全局varlor
。下面是固定的代码
var fighterScore1=document.getElementById(“fighterScore1”);
fighterScore1.value=10;
var fighter1Inc=document.getElementById(“fighter1Inc”);
var值=10;
var fighter1Dec=document.getElementById(“fighter1Dec”);
fighter1Inc.onclick=函数(){
fighterScore1.value=递增值();
};
fighter1Dec.onclick=函数(){
fighterScore1.value=递减值();
};
函数decreaseValue(){
如果(valor>0)
英勇--;
回报勇气;
};
函数increaseValue(){
如果(勇气<10)
英勇++;
回报勇气;
};
+
-
代码的问题是,并非incriseValue
和decreaseValue
中的所有路径都返回某些内容。这意味着返回未定义的;
。此外(幸运的是)incriseValue
和decreaseValue
不使用参数并使用全局varlor
。下面是固定的代码
var fighterScore1=document.getElementById(“fighterScore1”);
fighterScore1.value=10;
var fighter1Inc=document.getElementById(“fighter1Inc”);
var值=10;
var fighter1Dec=document.getElementById(“fighter1Dec”);
fighter1Inc.onclick=函数(){
fighterScore1.value=递增值();
};
fighter1Dec.onclick=函数(){
fighterScore1.value=递减值();
};
函数decreaseValue(){
如果(valor>0)
英勇--;
回报勇气;
};
函数increaseValue(){
如果(勇气<10)
英勇++;
回报勇气;
};
+
-
您正在将参数传递到IncremaseValue,但函数本身不接受参数?您正在将参数传递到IncremaseValue,但函数本身不接受参数?太好了。我知道了,我确信我在if语句中返回了值。感谢您的解释。这对我来说很有意义。没问题!如果您需要的话d还有什么,请告诉我!太好了。我知道了,我确信我在if语句中返回了值。谢谢你的解释。现在对我来说很有意义。没问题!如果你还需要什么,请告诉我!