在Javascript中按值获取表单元素

在Javascript中按值获取表单元素,javascript,jquery,html,Javascript,Jquery,Html,嘿,伙计们,我有一张表格,如下所述 <td><input type="text" id="NumberofRisks" name="Yeses" style="width: 25px" value ="<?php echo $row['Total-Score'];?> " </td> 我需要将该值作为表示NumberofRisks的值放入函数中。有什么方法可以做到这一点吗?为了获取输入框的值,可以使用以下javascript: var sum = do

嘿,伙计们,我有一张表格,如下所述

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

我需要将该值作为表示NumberofRisks的值放入函数中。有什么方法可以做到这一点吗?

为了获取输入框的值,可以使用以下javascript:

var sum = document.getElementById("NumberofRisks").value;
这就是你想要达到的目标吗

作为旁注,在您提供的示例中,您没有关闭
输入框
,因此可能也会出现一些错误

编辑:

如果您正在寻找一种纯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++
    }
}
var elements=document.getElementsByTagName('input');
var总和=document.getElementById(“NumberofRisks”).value;
对于(var i=0;i

请参阅fiddle-

尝试将
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;
}
var prevCheckedCount=0;
函数和()
{
var sumField=document.getElementById(“NumberofRisks”);
//使用数据库中HTML中的初始值开始求和
var valueOnClick=Math.floor(sumField.value);
var thisCheckedCount=0;
$(“输入[name^='yanswer']:选中”)。每个(函数(){
thisCheckedCount++;
});

如果(thisCheckedCount我更改了它,它试图将表行放入其中,但没有任何效果。作为旁注…您混合使用JS和jquery选择器的原因是什么?是什么用户操作触发了此计算?这可能有助于确定答案。@Teemu看看HTML代码,它是一个输入字段您的意思是希望
sum
变量从
#NumberofRisks
的初始值开始,而不是从0开始?我认为这个答案本身并不适用于你-如果你勾选一些框,单击“更新”,然后取消勾选一些框,再次单击“更新”,你的NumberofRisks值将不会减少以反映更改。是的,这对我有效。我需要找出答案否w too@ZougenMoriver.看看我的答案。
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;
}