gpt4 book ai didi

javascript - 尝试制作一个 html 复选框,将数字添加到输出字段

转载 作者:行者123 更新时间:2023-11-28 09:18:27 25 4
gpt4 key购买 nike

我正在尝试创建一个表格,当我选中一个框时,如果显示的图像是 yes.jpg,则会在列底部的输出框中添加一个数字。如果没有,则不会添加任何数字。有三列,每个复选框影响三个图像,因此影响三个输出框。这是我的代码。

    <html>
<head>
<script>
function onSelect(rowId)
{
var row = document.getElementById(rowId);
var checkBox = row.getElementsByTagName("checkRow")[0];
var outputRow = document.getElementById("outputRow");
var totalRow1 = outputRow.getElementById("total1");
var totalRow2 = outputRow.getElementById("total2");
var totalRow3 = outputRow.getElementById("total3");
//If box is checked, check images. If they are yes, edit boxes.
if (checkBox.checked)
if (row.getElementById.("image1").src.indexOf(yes.png) > -1)
{
totalRow1.innerHTML = "dfd";
}
else {
//checkBox =
}
}
/*function onCheck()
{
var total1 = document.getElementById("total1");
window.alert("sometext");
total1.innerHTML = "dfd";
} */
</script>
</head>

<body>
<table border="1">
<tr> <!-- Table Header -->
<td>
Checkbox
</td>
<td>
Items
</td>
<td>
Area 1
</td>
<td>
Area 2
</td>
<td>
Area 3
</td>
</tr>

<tr id="checkRow"> <!-- Row 1 -->
<td>
<form>
<input type="checkbox" name="Row1" value="Row1" onclick="onCheck();">
</form>
</td>
<td>
Item
</td>
<td id="image1">
<img src="yes.png" alt="Needed">
</td>
<td id="image2">
<img src="yes.png" alt="Needed">
</td>
<td id="image3">
<img src="no.png" alt="Needed">
</td>
</tr>



<tr id="outputRow"> <!-- Table Bottom -->
<td>
<!--Empty-->
</td>
<td>
Summation
</td>
<td id="total1">
Area 1
</td >
<td id="total2">
Area 2
</td>
<td id= "total3">
Area 3
</td>
</tr>
</table>
</body>

目前,我只是尝试编辑其中一个输出框的输出文本(如我的 onCheck() 方法所示)。然而,即使这样似乎也不起作用。我添加了一个警报,但也没有发生。我做错了什么?

最佳答案

有很多事情,你都做错了,

首先,您在单击复选框时调用了 onCheck() 函数,但没有这样的 JavaScript 函数。您可以使用 onSelect(id) 来代替。

第二,您正在尝试.getElementById您的TD,因为这些ID“image1”都是tds的ID,而不是imgs

然后您正在为它们访问.src,所以无论如何这是错误的。

改进:

  1. 将您的输入复选框更改为:

     <input type="checkbox" name="Row1" value="Row1"  onchange="onCheck(this);">

您正在做的是,您在函数 onCheck(this); 中传递输入的引用;

2。现在像这样更改您的标记:

     <td>
<form>
<input type="checkbox" name="Row1" value="Row1" onchange="onCheck(this);">
</form>
</td>
<td>
Item
</td>
<td >
<img id="image1" src="yes.png" alt="Needed">
</td>
<td >
<img id="image2" src="yes.png" alt="Needed">
</td>
<td >
<img id="image3" src="no.png" alt="Needed">
</td>
</tr>

我所做的就是向正确的元素(即 IMG,而不是 TD)提供 ID;

第三,让你的 onCheck() 像这样:

function onCheck(cb)
{
if(cb.checked===true)
{
if(document.getElementById('image1').src.toString().indexOf('yes')>0){
document.getElementById('total1').innerHTML='555';
}
else
{
document.getElementById('total1').innerHTML='No';
}

if(document.getElementById('image2').src.toString().indexOf('yes')>0){
document.getElementById('total2').innerHTML='555';
}
else
{
document.getElementById('total2').innerHTML='No';
}

if(document.getElementById('image3').src.toString().indexOf('yes')>0){
document.getElementById('total3').innerHTML='555';
}
else
{
document.getElementById('total3').innerHTML='No';
}
}
}

所以基本上 onCheck 与你的 onCheck 几乎相同。

现在,看看这个工作 fiddle ,我已经为你做了,它有效。当然,我讨厌你做这一切的方式。这一切都可以通过更简单的方式完成。

另外,了解 jQuery ,它让生活变得轻松。

关于javascript - 尝试制作一个 html 复选框,将数字添加到输出字段,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15326034/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com