Javascript 选中隐藏表单中的所有复选框时更改div颜色
有几个问题,找不到解决办法。我的代码 上表HTMLJavascript 选中隐藏表单中的所有复选框时更改div颜色,javascript,forms,html-table,submit,Javascript,Forms,Html Table,Submit,有几个问题,找不到解决办法。我的代码 上表HTML <div class="block"> <table> <tr> <th>Nr.</th> <th style="width: 200px">Task</th> <th>Progresas</th> <th></th> </tr&
<div class="block">
<table>
<tr>
<th>Nr.</th>
<th style="width: 200px">Task</th>
<th>Progresas</th>
<th></th>
</tr>
<tr>
<td>1</td>
<td>Air port scedules</td>
<td>0/3</td>
<td>
<button onclick="showDiv()">Expand</button>
</td>
</tr>
</table>
编号。
任务
进步
1.
机场时间表
0/3
扩大
隐藏分区
<div id="popup" class="popupbox">
<table class="block">
<tbody>
<tr>
<td></td>
<form>
<td>XML</td>
<td>
<span>Comment</span><br>
<textarea></textarea>
</td>
<td>
<span>Deadline</span>
<input type="date" value="2017-08-24">
</td>
<td>Done:<input type="checkbox"></td>
<td><input type="submit" value="Apply"></td>
</form>
</tr>
<tr>
<td></td>
<form>
<td>Scedules</td>
<td>
<span>Comment</span><br>
<textarea></textarea>
</td>
<td><span>Deadline</span>
<input type="date" value="2017-08-10">
</td>
<td>Done:<input type="checkbox"></td>
<td><input type="submit" value="Apply"></td>
</form>
</tr>
<tr>
<td></td>
<form>
<td>Infobox</td>
<td>
<span>Comment</span><br>
<textarea></textarea>
</td>
<td><span>Deadline</span>
<input type="date" value="2017-08-14">
</td>
<td>Done:<input type="checkbox"></td>
<td><input type="submit" value="Apply"></td>
</form>
</tr>
</tbody>
</table>
<button onclick="hideDiv()">close</button></div>
XML
评论
最后期限
完成:
日程
评论
最后期限
完成:
信息箱
评论
最后期限
完成:
关
本守则的主要目的应是:
Apply
代替
document.getElementById(“elementID”).style.backgroundColor=“#colorcode”
隐藏的div最初是隐藏的。提交表单时,会重新加载页面,因此它会再次隐藏。您可能希望处理单击按钮或表单提交,防止默认行为,通过AJAX请求提交数据,然后在不重新加载页面的情况下更新UI
<form onsubmit="return handleSubmit(this);">
...
<input type="checkbox" onchange="updateCheckboxesState();">
</form>
<script>
function handleSubmit(form) {
// send AJAX request here...
// manipulate DOM if needed in AJAX callback
return false; // prevent submit
}
function updateCheckboxesState() {
var checkboxes = document.querySelectorAll("form input[type=checkbox]");
for (var i = 0; i < checkboxes.length; i++) {
if (!checkboxes.item(i).checked) return; // break on first unchecked
}
// highlight the row here...
}
</script>
希望,这能帮上忙…我把你的小提琴放进密码笔里乱搞了一会儿。我可以用很多jQuery做你想做的事情。要学习jQuery,请访问www.w3schools.com/jQuery 这是代码笔: 在几个简短步骤中:
- 我删除了所有的
标记、
和
以使代码更干净(提交按钮导致隐藏div时出现问题,如@AngeLOL所述) - 我重新格式化了下表,只是为了使jQuery更干净,以便更好地工作。(我添加了一个标题行,并从块中删除了文本)
- 我包括了jQuery库
- 我重命名了jQuery函数并创建了另外一个(
,open()
,和close()
),它们分别由按钮调用apply()
- 在open()函数中,我用if
类显示了第二个表中的行。这样,就可以有一个干净的所有任务列表,而不是每个新列表都有一个新表items-[ID OF LIST OF WE in]
函数还将按钮从open()
更改为expand
,从而调用close函数hide
函数只是隐藏了第二个表,并将按钮的名称更改回close()
expand
- 每当按下应用按钮时,
功能就会运行。它执行两项检查:apply()
- 检查表行中标记为
的所有复选框,如果全部选中,则选择上表中的列表行。它会在背景中添加绿色.details-[ID我们正在使用]
- 然后,它会找到所有日期,并将它们与今天的日期进行比较(再次感谢@angeLOL。如果日期在5天之内,它会选择日期所在的行并更改颜色。如果日期已过或是今天,它会将该行涂成红色
- 检查表行中标记为
这需要大量的代码和大量的重组,因此如果您在理解上有困难,请告诉我,我可以帮助您完成我的步骤。我想我已经了解了您要做的事情。我正在开发一个改进的版本。我将对其进行注释,并在此处添加一些信息,解释我为什么要这么做。给我15或20米的时间分钟。在某些浏览器中,默认情况下按钮也会提交表单。您仍然需要阻止实际提交。@БСаааачааачааачааа1095
var el = document.querySelector("div.block > table > tr");
el.style.backgroundColor = "#FF0000"; // inline
el.className = "highlighted"; // element class