Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/363.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
getElementById的JavaScript问题_Javascript_Html - Fatal编程技术网

getElementById的JavaScript问题

getElementById的JavaScript问题,javascript,html,Javascript,Html,我想做的是从两个表单中获取值,然后将它们相加并显示结果,问题是它不起作用,无法找出原因。是一个简单的东西,但我对Javascript还是新手。这是我的密码 <!DOCTYPE html> <html> <head> <title> Random Page </title> <meta http-equiv="Content-Type" content="text/html; charse

我想做的是从两个表单中获取值,然后将它们相加并显示结果,问题是它不起作用,无法找出原因。是一个简单的东西,但我对Javascript还是新手。这是我的密码

<!DOCTYPE html>
<html> 
    <head> 
        <title> Random Page </title>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    </head>
    <body>
        <form>
            Escriba el primer número: <input type="number" id="txtNumber1">
        </form> 
        <br>
        <form>
            Escriba el segundo número: <input type="number" id="txtNumber2">
        </form> 
        <br>
        <button id="btnSumar" onclick="Sumar()"> ¡Sumar! </button> 
        <br>
        <p id="p"> I'm a paragraph </p>
        <script>
            function Sumar() {
                document.getElementById("p").innerHTML="It works until here.";
                var num1 = document.getElementById("txtNumber1").value;
                var num2 = document.getElementById("txtNumber2").value;
                this.resultado = num1 + num2;
            }
            document.getElementById("p").innerHTML="The result is " + resultado;
        </script>
    </body>
</html>

随机页面
诺梅罗引述:

埃斯克里巴·塞贡多·努梅罗:
“苏玛!

我是一个段落

函数Sumar(){ document.getElementById(“p”).innerHTML=“它一直工作到这里。”; var num1=document.getElementById(“txtNumber1”).value; var num2=document.getElementById(“txtNumber2”).value; this.resultado=num1+num2; } document.getElementById(“p”).innerHTML=“结果是”+resultado;

任何帮助都将不胜感激。Tahnks.

你能试试这个吗,我在你的代码中发现了无效的方法
this.resultado
rst.resultado
,因为没有根本原因,你可以根据输入的数字使用
parseInt
parseFloat

  function Sumar() {
            document.getElementById("p").innerHTML="It works until here.";
            var num1 = document.getElementById("txtNumber1").value;
            var num2 = document.getElementById("txtNumber2").value;

            var result = num1 + num2; // you can use parseInt or parseFloat based on your input number 
            document.getElementById("p").innerHTML="The result is " +  result;
        }

函数Sumar(){
document.getElementById(“p”).innerHTML=“它一直工作到这里。”;
var num1=document.getElementById(“txtNumber1”).value;
var num2=document.getElementById(“txtNumber2”).value;
var resultado=parseInt(num1)+parseInt(num2);
document.getElementById(“p”).innerHTML=“结果是”+resultado;
}

这里有两个示例,一个使用标准JavaScript,它应该能回答基本问题,另一个使用globalize.js,它将处理国际风格的数字符号

使用标准JavaScript 使用parseInt()(或parseFloat())函数将文本字段参数转换为数字并删除字符,将最后一行innerHTML移到Sumar()函数中,并将rst.resultado和this.resultado更改为resultado


函数Sumar(){
var num1=parseInt(document.getElementById(“txtNumber1”).value);
var num2=parseInt(document.getElementById(“txtNumber2”).value);
resultado=num1+num2;
document.getElementById(“p”).innerHTML=“结果是”+resultado;
}
使用Globalize.js允许国际数字格式 jQuery提供了一个由Microsoft开发的脚本,名为根据区域设置格式化数字。在中,我以西班牙为例,但它可以使用更多的格式和地区。尝试使用类似1.234,56的符号来检查计算。您可以使用toLocalString()函数将计算出的数字重新格式化为本地化格式,但这目前仅适用于Chrome和IE。您可以将其用于其他浏览器,但这是我仅有的时间。这里是基本的脚本,但请查看以查看所需的其他js以及需要对表单标记进行的更改

<script>
    function Sumar() {
        var num1 = Globalize.parseFloat(document.getElementById("txtNumber1").value);
        var num2 = Globalize.parseFloat(document.getElementById("txtNumber2").value);
        resultado = num1 + num2;
        document.getElementById("p").innerHTML = "The result is " + resultado.toLocaleString("es-ES");
    }
</script>

函数Sumar(){
var num1=Globalize.parseFloat(document.getElementById(“txtNumber1”).value);
var num2=Globalize.parseFloat(document.getElementById(“txtNumber2”).value);
resultado=num1+num2;
document.getElementById(“p”).innerHTML=“结果是”+resultado.toLocaleString(“es”);
}

this.resultado=num1+num2正在做什么?你认为document.getElementById(“p”).innerHTML=“结果是”+rst.resultado执行?当变量更新时,innerHTML行不会神奇地更新@如果要使用
parseInt
您真的需要包含基数,请单击按钮“btnSumar”上的UDB一次。@putvande,假设OP想要像简单的添加一样,我已经删除了它。为此你投了否决票?不,我没有投否决票,我只是想知道你为什么不使用它。一个被否决的政党,无论如何,谢谢,问题是那个document.getElementById从函数中退出了,所以它不起作用。如果你要使用
parseInt
,你真的需要包含基数。@Andy,我认为radi参数是可选的……可选的,但始终尝试指定它,否则会遇到各种问题:)如果
xtnumber1
的值为“1234,56”会怎么样?小于
num1
NaN
Hmm。。但是“1234,56”在一些国家是一个数字,为什么要限制它呢?有趣的是,我没有考虑国际化。哪些国家使用,而不是。?大约67个国家使用,包括西班牙(我猜OP来自西班牙)
<script>
    function Sumar() {
        var num1 = parseInt(document.getElementById("txtNumber1").value);
        var num2 = parseInt(document.getElementById("txtNumber2").value);
        resultado = num1 + num2;
        document.getElementById("p").innerHTML="The result is " + resultado;
    }
</script>
<script>
    function Sumar() {
        var num1 = Globalize.parseFloat(document.getElementById("txtNumber1").value);
        var num2 = Globalize.parseFloat(document.getElementById("txtNumber2").value);
        resultado = num1 + num2;
        document.getElementById("p").innerHTML = "The result is " + resultado.toLocaleString("es-ES");
    }
</script>