我有东西要打印,但它不是正确的答案。现在我只是得到"[object HTMLFormElement] is a Odd number"
,不管我输入什么数字,它是偶数还是奇数。
function isEvenorOdd(num, form) {
if (num % 2 == 0) {
document.getElementById('result').innerHTML = `${num} is a Even number`
console.log(`${num} is a Even number`)
}
else {
document.getElementById('result').innerHTML = `${num} is a Odd number`
console.log(`${num} is a Odd number`)
}
}
个字符
3条答案
按热度按时间6rqinv9w1#
你的代码有几个问题
isEvenorOdd
函数-您有两个参数num
和form
。但是当你在onclick
属性中调用函数时,你只传递了表单元素(this.form
),而不是输入字段。这里有一个工作示例-相当简单:
个字符
大整型示例:用于用例111111111111111111和1111111111111111112
的字符串
2wnc66cl2#
如前所述,您传递的是表单对象,而不是字段的数值。你需要得到文本输入,得到它的值,解析为int,然后调用
isEvenorOdd
:个字符
tjjdgumg3#
与其在HTML上使用
onclick
函数,不如像这样使用eventListeners:个字符
另外,如果您只打算更改元素的文本,那么就性能而言,使用
textContent
比innerHTML
要好得多。你还必须验证用户是否真的输入了数字,因为这是一个输入文本,他们可以输入任何他们想要的,而不一定是一个数字。如果他们输入像
Foo
这样的东西,那么当你用Number()
将其转换为数字时,你必须用isNaN()
进行验证,如果这返回NaN
,那么这意味着他没有输入数字,因此它不能用Number()
进行转换,你可以返回像${num} is not a number
这样的东西