2013-04-20 84 views
1

这里是我想达到的,但出于某种原因,这是行不通的:访问HTML表单值的JavaScript

的Javascript:

<script type="text/javascript">   
    function calculate() {    
    var n1 = getElementById("1").value 
    var n2 = getElementById("2").value 
    var answer = n1+n2 
    alert(answer) 
    } 
</script> 

HTML:

<form id="form"> 
<input id="1" type="text" /> 
<input id="2" type="text" /> 
<input type="button onClick="calculate()" value="Go" /> 
</form> 

我不知道我错了哪里,有人可以帮忙吗?

回答

4

你不应该用数字开始ID - 在HTML4和CSS中它是isn't allowed,在HTML5中它是允许的,但这样做不是好习惯。

另外,在此上下文中,它在HTML5中是非法的 - 作为以数字requires at least one letter afterwards开头的ID。

因此,首先用字母/单词替换编号的ID。


除了这个,你需要修复下面提到的语法错误:

更换getElementById("id").valuedocument.getElementById("id").value;

,并同时更换<input type="button onClick="calculate()" value="Go" />

<input type="button" onClick="calculate()" value="Go" />(注意有一个封闭"缺少"button")。

这是一个工作jsFiddle


这里是在的jsfiddle使用的代码:

的Javascript:

function calculate() { 
    var n1 = document.getElementById("aItem").value; 
    var n2 = document.getElementById("bItem").value; 
    var answer = n1+n2; 
    alert(answer); 
} 

HTML:

<form id="form"> 
    <input id="aItem" type="text" /> 
    <input id="bItem" type="text" /> 
    <input type="button" onClick="calculate()" value="Go"/> 
</form> 
+1

我从来不知道这一点,非常感谢 – 2013-04-20 18:42:17

+1

@ user125697有趣的是,现在在HTML5中允许用数字开始ID;但是,这里的ID在CSS和HTML5中仍然是非法的 - 因为HTML5在ID中需要“至少一个字符”:http://www.w3.org/html/wg/drafts/html/master/dom.html #the-id-attribute – 2013-04-20 19:25:02

+0

@SamCreamer嘿!随时接受我的答案,如果它有帮助(检查这个如何做--http://meta.stackexchange.com/questions/5234/how-does-accepting-an-answer-work),非常感谢! – lifetimes 2013-05-25 00:41:33

1

HTML:

<input id="val1" type="text" value="100" /> 
<input id="val2" type="text" value="200"/> 
<input type="button" onclick="calculate()" value="Go" /> 

的JavaScript:

function calculate() { 
      var n1 = +(document.getElementById("val1").value); 
      var n2 = +(document.getElementById("val2").value); 
      var answer = n1+n2; 
      alert(answer); 
     } 

这将增加进入,而不是串联他们2个数值。