Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/476.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 单击按钮查找最多两个数字_Javascript_Html_Forms_Function - Fatal编程技术网

Javascript 单击按钮查找最多两个数字

Javascript 单击按钮查找最多两个数字,javascript,html,forms,function,Javascript,Html,Forms,Function,我对HTML和JavaScript非常陌生,正在尝试一项家庭作业 有一个表单,有两个字段,用户在其中输入数字,还有一个按钮。按下按钮时,应显示两个数字的最大值 事实上,输出是NaN,但我不知道为什么。我已经通过chrome调试器运行了它,在var1=parseInt(var1)行,var1的值为NaN。下一行也会发生同样的情况 如果我将每一行替换为var1=parseInt(“6”),但这并没有发生,而且一切都按预期进行(尽管显然没有做我需要的事情) 知道我做错了什么吗 <html>

我对HTML和JavaScript非常陌生,正在尝试一项家庭作业

有一个表单,有两个字段,用户在其中输入数字,还有一个按钮。按下按钮时,应显示两个数字的最大值

事实上,输出是NaN,但我不知道为什么。我已经通过chrome调试器运行了它,在
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>