2014-01-28 283 views
3

我是JavaScript新手,我試圖弄清楚如何將用戶輸入值作爲參數傳遞給JavaScript函數。以下是我的代碼:將HTML輸入值作爲JavaScript函數參數傳遞

<body> 
<h1>Adding 'a' and 'b'</h1> 
<form> 
    a: <input type="number" name="a" id="a"><br> 
    b: <input type="number" name="b" id="a"><br> 
    <button onclick="add(a,b)">Add</button> 
</form> 
<script> 
    function add(a,b) { 
    var sum = a + b; 
    alert(sum); 
    } 
</script> 
</body> 
+0

[Javascript獲取輸入文本值]的可能重複(http://stackoverflow.com/questions/11563638/javascript-get-input-text-value) –

回答

10

一種方法是使用document.getElementByID

<body> 
<h1>Adding 'a' and 'b'</h1> 

    a: <input type="number" name="a" id="a"><br> 
    b: <input type="number" name="b" id="b"><br> 
    <button onclick="add(document.getElementById('a').value,document.getElementById('b').value)">Add</button> 

<script> 
    function add(a,b) { 
    var sum = parseInt(a) + parseInt(b); 
    alert(sum); 
    } 
</script> 
</body> 
+0

好的,你的解決方案有點工作。但是,它將它連接起來,就像a和b是字符串一樣。所以總和是12而不是3,其中a = 1和b = 2。 – cdalto

+0

'var sum = Number(a)+ Number(b);' – cdalto

+1

我的不好。我更新了答案。 – Ankit

0

您可以使用ID獲取值。但ID應該是唯一的。

<body> 
<h1>Adding 'a' and 'b'</h1> 
<form> 
    a: <input type="number" name="a" id="a"><br> 
    b: <input type="number" name="b" id="b"><br> 
    <button onclick="add()">Add</button> 
</form> 
<script> 
    function add() { 
    a = $('#a').val(); 
    b = $('#b').val(); 
    var sum = a + b; 
    alert(sum); 
    } 
</script> 
</body> 
4

首先元素ID應該始終是唯一的。如果你的元素ID不是唯一的,那麼你總是會得到相互衝突的結果。想象一下,在你的情況下,使用兩個具有相同ID的不同元素。

<form> 
    a: <input type="number" name="a" id="a"><br> 
    b: <input type="number" name="b" id="b"><br> 
    <button onclick="add()">Add</button> 
</form> 

<script> 
    function add() { 
    var a = document.getElementById('a').value; 
    var b = document.getElementById('b').value; 

    var sum = parseInt(a) + parseInt(b); 
    alert(sum); 
    } 
</script> 
+0

有沒有辦法實際將這些項目作爲參數傳遞雖然? – cdalto

+1

@cdalto,我明白你是JS的新手。你接受的答案「有效」,但並不是最佳實踐。通常最好將所有邏輯委託給DOM元素中的函數,而不是onclick函數。只要圖像,如果你有3,4,5 ..值添加。作爲初學者,最好不要學習壞習慣:)。祝你學習JS好運。 :) – dcodesmith

0

你用jQuery嗎? 如果再:

$('#xx').val(); 

或利用原有的JavaScript(DOM)

document.getElementById('xx').value 

xxxform.xx.value; 
如果您想了解更多

,w3chool可以幫助你很多。

2

1個ID的意思是唯一

2你不需要傳遞任何參數,你可以打電話給他們在JavaScript

<form> 
    a: <input type="number" name="a" id="a"><br> 
    b: <input type="number" name="b" id="b"><br> 
    <button onclick="add()">Add</button> 
</form> 
<script> 
    function add() { 
    var a = document.getElementById('a').value; 
    var b = document.getElementById('b').value; 
    var sum = a + b; 
    alert(sum); 
    } 
</script> 
0

使用該會工作,

<body> 
<h1>Adding 'a' and 'b'</h1> 
<form> 
    a: <input type="number" name="a" id="a"><br> 
    b: <input type="number" name="b" id="a"><br> 
    <button onclick="add()">Add</button> 
</form> 
<script> 
    function add() { 
    var m = document.getElementById("a").value; 
    var n = document.getElementById("b").value; 
    var sum = m + n; 
    alert(sum); 
    } 
</script> 
</body> 
0
<form action="" onsubmit="additon()" name="form1" id="form1"> 
     a: <input type="number" name="a" id="a"><br> 
     b: <input type="number" name="b" id="b"><br> 
     <input type="submit" value="Submit" name="submit"> 
    </form> 
    <script> 
     function additon() 
     { 
      var a = document.getElementById('a').value; 
      var b = document.getElementById('b').value; 
      var sum = a + b; 
      return sum; 
     } 
    </script> 
相關問題