Javascript 单击按钮查找最多两个数字
我对HTML和JavaScript非常陌生,正在尝试一项家庭作业 有一个表单,有两个字段,用户在其中输入数字,还有一个按钮。按下按钮时,应显示两个数字的最大值 事实上,输出是NaN,但我不知道为什么。我已经通过chrome调试器运行了它,在Javascript 单击按钮查找最多两个数字,javascript,html,forms,function,Javascript,Html,Forms,Function,我对HTML和JavaScript非常陌生,正在尝试一项家庭作业 有一个表单,有两个字段,用户在其中输入数字,还有一个按钮。按下按钮时,应显示两个数字的最大值 事实上,输出是NaN,但我不知道为什么。我已经通过chrome调试器运行了它,在var1=parseInt(var1)行,var1的值为NaN。下一行也会发生同样的情况 如果我将每一行替换为var1=parseInt(“6”),但这并没有发生,而且一切都按预期进行(尽管显然没有做我需要的事情) 知道我做错了什么吗 <html>
var1=parseInt(var1)行代码>,var1的值为NaN。下一行也会发生同样的情况
如果我将每一行替换为var1=parseInt(“6”)代码>,但这并没有发生,而且一切都按预期进行(尽管显然没有做我需要的事情)
知道我做错了什么吗
<html>
<head>
<title> Question 2 </title>
<script>
function larger(var1,var2) {
var1 = parseInt(var1);
var2 = parseInt(var2);
var max = var1>var2 ? var1 : var2;
return max;
}
</script>
</head>
<body>
<form>
<label>First number:</label> <input type="text" name="num1"/><br/>
<label>Second number:</label> <input type="text" name="num2"/><br/>
<input type="button" value="Compute" onclick="myResult.value=larger(num1,num2)"/>
<input type="text" name="result" id="myResult"/>
</form>
</body>
</html>
问题2
函数较大(var1、var2){
var1=parseInt(var1);
var2=parseInt(var2);
var max=var1>var2?var1:var2;
返回最大值;
}
第一个号码:
第二个号码:
第一个号码:
第二个号码:
函数大于()
var1=parseInt(document.getElementsByName('num1');
var2=parseInt(document.getElementsByName('num2');
var max=var1>var2?var1:var2;
返回最大值;
}
您的函数无法从HTML中获取值。你不需要参数化你的函数。您可以读取函数中的值,如:
var1 = document.getElementById('someId');
并在您的输入字段中添加一个id=“someId”-标记。您在这里做得非常错误:因为您这样调用函数:onclick=“myResult.value=larger(num1,num2)”
这是不正确的,因为如果要获取num1
和num2
的值,需要使用javascript方法document.getElementsByName
在您的情况下,您可以使用:
var num1Value = document.getElementsByName(num1);
var num2Value = document.getElementsByName(num2);
第二件事,使用parseInt()
方法,该方法用于解析字符串并返回整数
您可以按如下方式更改功能
function larger(var1,var2) {
var1 = document.getElementsByName("num1");
var2 = document.getElementsByName("num2");
var max = var1>var2 ? var1 : var2;
return max;
}
因为getElementsByName()返回节点数组。因此,您必须通过以下方法获取文本框的值:
<body>
<form>
<label>First number:</label> <input type="text" name="num1"/><br/>
<label>Second number:</label> <input type="text" name="num2"/><br/>
<input type="button" value="Compute" onclick="myResult.value=larger()"/>
<input type="text" name="result" id="myResult"/>
</form>
</body>
<script>
function larger() {
var1 = parseInt(document.getElementsByName("num1")[0].value);
var2 = parseInt(document.getElementsByName("num2")[0].value);
var max = var1>var2 ? var1 : var2;
return max;
}
</script>
第一个号码:
第二个号码:
函数较大(){
var1=parseInt(document.getElementsByName(“num1”)[0].value);
var2=parseInt(document.getElementsByName(“num2”)[0].value);
var max=var1>var2?var1:var2;
返回最大值;
}
num1
和num2
的定义在哪里?因为OP只是在学习JS,如果你在你的问题中添加你所做的事情的描述会有所帮助。总是在发布的代码中添加一些描述是个好主意。谢谢,这对我来说确实很清楚。但如果你想添加一些描述,我不会抱怨;)为了澄清发生了什么,如果我使用按钮onclick的myResult.value=large(parseInt(document.getElementsByName('num1'))、parseInt(document.getElementsByName('num2'))
)更改方法调用而不是方法本身,为什么不起作用呢?但是文本框没有id。它们需要按名称提取。:)是的,这是另一个选择;)
<body>
<form>
<label>First number:</label> <input type="text" name="num1"/><br/>
<label>Second number:</label> <input type="text" name="num2"/><br/>
<input type="button" value="Compute" onclick="myResult.value=larger()"/>
<input type="text" name="result" id="myResult"/>
</form>
</body>
<script>
function larger() {
var1 = parseInt(document.getElementsByName("num1")[0].value);
var2 = parseInt(document.getElementsByName("num2")[0].value);
var max = var1>var2 ? var1 : var2;
return max;
}
</script>