2014-01-30 50 views
0

嗨我有一個形式如下通過值在Javascript從表中獲取表單元素

<td><input type="text" id="NumberofRisks" name="Yeses" style="width: 25px" value ="<?php echo $row['Total-Score'];?> " </td> 

的形式規定了一些數據作爲一種價值,我想借此值進入我的JavaScript做一個簡單的計算。該功能列在下面。

function sum() 
{ 
    sumField = document.getElementById("NumberofRisks"); 
    var sum = 0; 

    $("input[name^='yanswer']:checked").each(function(){ 
    sum++;   

    }); 

     sumField.value = sum; 
} 

我需要將該值作爲值表示NumberofRisks的值。有什麼辦法可以做到這一點?

+0

我改變了它,它試圖把錶行中有,但無濟於事。 – Strobes

+0

作爲旁註...是否有你混合JS和jQuery選擇器的原因? – ggzone

+0

什麼用戶操作觸發此計算?這可能有助於確定答案。 –

回答

1

試試這個設置sum初始值#NumberofRisks

var prevCheckedCount = 0; 

function sum() 
{ 
    var sumField = document.getElementById("NumberofRisks"); 

    // start sum with the inital value in HTML from DB 
    var valueOnClick = Math.floor(sumField.value); 
    var thisCheckedCount = 0; 

    $("input[name^='yanswer']:checked").each(function(){ 
     thisCheckedCount++; 
    }); 

    if(thisCheckedCount <= prevCheckedCount) { 
     sumField.value = valueOnClick - prevCheckedCount + thisCheckedCount; 
    } else { 
     sumField.value =valueOnClick + thisCheckedCount; 
    } 

    prevCheckedCount = thisCheckedCount; 
} 

下面是這段代碼的工作:http://jsfiddle.net/t5hG4/

+0

剛剛更新以在更多情況下工作。 –

1

爲了搶你可以使用下面的JavaScript輸入框的值:

var sum = document.getElementById("NumberofRisks").value; 

這是你想達到什麼樣的?

請注意,在您提供的示例中,您沒有關閉input box,因此可能也會給您一些錯誤。

編輯:

如果你正在尋找一個純JavaScript的方式來做到這一點見下文:

var elements = document.getElementsByTagName('input'); 
var sum = document.getElementById("NumberofRisks").value; 

for (var i = 0; i < elements.length; i++) { 
    if (elements[i].checked) { 
     sum++ 
    } 
} 

見小提琴 - http://jsfiddle.net/es26j/

+0

的數字開始我不認爲這個答案本身會適用於您 - 如果您勾選了某些框,請點擊更新,然後取消選中某些框並再次單擊更新,您的NumberofRisks值不會減少以反映更改。 –

+0

是的,這對我有效。我現在也需要弄清楚@ZougenMoriver。 – Strobes

+0

看到我的答案。 –

相關問題