Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/463.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
在HTML中使用javascript函数_Javascript - Fatal编程技术网

在HTML中使用javascript函数

在HTML中使用javascript函数,javascript,Javascript,我正在创建一个小网页,将两个输入字段添加到一起,并将结果放在另一个输入字段中。这就是我所拥有的: <html> <head> <title>Calculator</title> <script type="text/javascript"> function add(){ var num1 = parseInt(document.calc.num1.value);

我正在创建一个小网页,将两个输入字段添加到一起,并将结果放在另一个输入字段中。这就是我所拥有的:

<html>
<head>
    <title>Calculator</title>

    <script type="text/javascript">
        function add(){
            var num1 = parseInt(document.calc.num1.value);
            var num2 = parseInt(document.calc.num2.value);
            var answer = (num1+num2);
            document.getElementById('res').value = answer;
        }
    </script>
</HEAD>

<BODY>
    <FORM NAME="calc">
        <INPUT TYPE ="button" NAME="add" Value="+" onClick="add()">
        <hr/>
        <INPUT TYPE ="text" NAME="num1" Value="">
        <INPUT TYPE ="text" NAME="num2" Value="">  
        <hr/>
        <INPUT TYPE ="text" ID="res" NAME="result" VALUE="">
    </FORM>
</BODY>
</HTML>

onclick是处理单击的正确属性

将此位切换到

onclick="add()"

尝试将函数名从add更改为addNumbers或类似的内容。

问题在于函数名“add()”,更改名称后,您将看到它将正常工作

HTML

<p>
    <label for="field1">Field 1</label>
    <input type="number" id="field1"/>
</p>
<p>
    <label for="field2">Field 2</label>
    <input type="number" id="field2"/>
</p>
<p>
    <label for="total">Total</label>
    <input readonly type="number" id="total"/>
</p>
<p>
    <input type="button" id="calc" value="Calculate"/>
</p>

不HTML属性不区分大小写。正如@SLaks所提到的,将单击更改为小写并不能解决问题。我建议可以缓解问题的一件事是选择大小写(大写或小写),并坚持使用它。大多数浏览器更喜欢使用小写字母表示元素。想想:太棒了!我想问题是因为我的函数和按钮名是一样的?将函数名更改为addNumbers解决了这个问题。谢谢<代码>在引用元素的处理程序中添加。是的。你也看到这个问题了。性能文章倾向于“建议”您将尽可能多的JS放在文档的底部/页脚。在我们进行此操作时,不妨开始返回到
document.write()
,因为这样速度更快。对不起,这还是个坏习惯。
onclick="add()"
<p>
    <label for="field1">Field 1</label>
    <input type="number" id="field1"/>
</p>
<p>
    <label for="field2">Field 2</label>
    <input type="number" id="field2"/>
</p>
<p>
    <label for="total">Total</label>
    <input readonly type="number" id="total"/>
</p>
<p>
    <input type="button" id="calc" value="Calculate"/>
</p>
function sumFields(fields) {
    var total = 0;

    // goes through each field and adds them to the total
    for(var i=0,l=fields.length; i<l; i++)
        { total += parseInt(document.getElementById(fields[i]).value); }

    document.getElementById('total').value = total;
}

function calc_click() {
    // runs when the button is clicked
    sumFields(['field1','field2']);
}

// main function
function init() {
    // add button functionality
    document.getElementById('calc').addEventListener('click',calc_click,false);
}

// fires when the DOM is loaded
document.addEventListener('DOMContentLoaded',init,false);