使用Javascript在HTML中比较两个输入数字?

4

我正在使用Notepad++创建一个简单的网页,用户在文本框中输入两个数字,然后按下按钮。当他们按下按钮时,会出现提示告诉他们第一个数字还是第二个数字更大。但我有以下代码,却无法显示任何内容。有人知道错在哪里吗?

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
   "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
<head>
<meta http-equiv="content-type" content="text/html;charset=utf-8" />
   <title>Assignment 10 Form</title>

    <script type="text/javascript">

        function greaterNum(){
        var value1;
        var value2;
        value1 = document.First_num.value;
        value2 = document.last_num.value;
        if (value1 > value2){
        alert('Value 1 is greater than value 2');
        document.body.style.background = "orange";
        }

    }


</script> 


<style type="text/css">
  body{background-color: #40FF00;
    margin-left: auto;
    margin-right: auto;
    width: 60%;
    }

#container{
    border: 2px solid yellow;
    padding: 20px;
    }

</style>

</head>

<body>
<h1>Assignment 10</h1>

<div id="container">
    <div class="Num">
    <form>
<label class="label1">Enter Value 1:</label>
<input type="text" name="First_num" value=" " />
<label class="label1">Enter Value 2:</label>
<input type="text" name="last_num" value=" " />
<br/>
<input type="button" value=" Which number is greater? " onclick="greaterNum();" />
</form>

</body>
</html>
4个回答

5

来自输入框的值被获取为字符串,您需要将其转换为数字。请尝试以下操作:

value1 = +document.First_num.value;
value2 = +document.last_num.value;

另外,请在命名输入时保持一致,为什么一个使用大写字母,而另一个使用小写字母?

@dewyze FYI,最后的'.value'是完成这个技巧的关键! - master ArSuKa

0

你可能需要使用:

value1 = document.getElementById("First_num").value;

然而,这仅在您为元素分配id属性时才有效:

<input type="text" id="First_num" name="First_num" value=" " />

否则,请使用 getElementsByName
希望这能帮到你!

0

转换为浮点数。

value1 = parseFloat(document.First_num.value);
value2 = parseFloat(document.last_num.value);

-1

Html是一个字符串,而不是一个值。你需要以某种方式解析它。

编辑:

问题似乎是获取值的问题,将其更改为getElementById,它就可以正常工作了:

http://jsfiddle.net/fHtZU/10/

HTML

<h1>Assignment 10</h1>

<div id="container">
    <div class="Num">
    <form>
<label class="label1">Enter Value 1:</label>
<input type="text" id="First_num" name="First_num" />
<label class="label1">Enter Value 2:</label>
<input type="text" id="last_num" name="last_num" />
<br/>
<input type="button" id="clickme" value="Which number is greater?" onclick="greaterNum()" />
</form>

js

function greaterNum(){
    var value1;
    var value2;
    value1 = document.getElementById("First_num").value;
    value2 = document.getElementById("last_num").value;
    if (value1 > value2){
        alert(value1 - value2);
        document.body.style.background = "orange";
    }

}

我们如何解析这个HTML? - ameed
我不想打击你的积极性,但未来请至少发布一些原始代码并尽可能在本地测试。感谢更新! :-) - ameed
哦,你说得对。并不是总有很多问题我真正知道如何回答的,我有点激动了。 - dewyze
我想补充一点,您需要检查用户输入的值是否为数字。您可以使用isNan函数来实现。您可以使用isNaN函数来完成此操作。如果(isNaN(value1)|| isNan(value2)){ 警告(“请输入数字”); } - Francisco Goldenstein

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接