在Javascript中按值获取表单元素

时间:2014-01-30 16:38:09

标签: javascript jquery html

嘿伙计们,我的表格如下所述

<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的值获取到函数中。有没有办法可以做到这一点?

2 个答案:

答案 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/

答案 1 :(得分: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/