0

这是我的一段代码,它没有按预期的方式工作。可以告诉我我有什么问题

<html>
<body>
<form>
  <input type="submit" value="Check" onclick="f(x, y, z)"/>
</form>
</body>
<script type="text/javascript">

var x = prompt("Enter the number",""); 
var y = prompt("Enter the number","");
var z = prompt("Enter the number","");

function f(x, y, z)
{
    // first, check that the right # of arguments were passed.
    if (f.arguments.length != 3) {
        alert("function f called with " + f.arguments.length +
              "arguments, but it expects 3 arguments.");
        return null;
    }


}
</script>
</html>
4

3 回答 3

3

您调用的函数将始终有 3 个参数。也许您想检查参数是否不为空?

if (x=='' || y=='' || z==''){}
于 2013-10-10T12:21:20.927 回答
2

你应该检查arguments.length,而不是f.arguments.length

编辑:@TheMobileMushroom 还指出,即使参数是空字符串,参数长度也将为 3。您可以将其更改为

if (!x || !y || !z)

不要使用arguments.length

于 2013-10-10T12:11:09.710 回答
0

尝试将 script 标签放在 form 标签之前,这样 x,y 和 z 将在之前声明。

于 2013-10-10T12:47:54.253 回答