在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;
}