我想编写一个java脚本函数,它将从td获取类型为“checkbox”的输入标记,并将其标记为未选中。以下是jsp代码:
<td id="uncheckedByDefault" align=center class=listTypeOne>
<% if (priv.getViewPrivilege() == 1) { %>
<input name="view" type="checkbox" value='<%= priv.getAttributeId() %>' checked>
<% } else { %>
<input name="view" type="checkbox" value='<%= priv.getAttributeId()%>'>
<% } %>
</td>
现在这里的td有id =“uncheckedByDefault”。我想获取所有输入标记并将其设置为未选中。任何人都可以告诉我该怎么做。提前谢谢。
答案 0 :(得分:2)
尝试:
inputs = document.getElementById('uncheckedByDefault').getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
// deal with inputs[index] element.
inputs[index].checked=false;
}
答案 1 :(得分:1)
我不知道我是否理解你的问题,但我会试一试。
首先,您可以使用<% ... %>
将元素打印到您的网页中(我将在答案中显示),这样您就不必将条件设置为<% ... %>
,打印一个元素......等等都在同一个Java函数中。
其次,您可以访问Object
媒体资源,而无需致电获取者。如果要将其值设置为特定字段,则根本不需要。 (即)<input type="text" name="clientName" value="${client.clientName}" />
以下是我对您提问的建议:
<td id="uncheckedByDefault" align=center class=listTypeOne>
<%
if (priv.getViewPrivilege() == 1) {
out.println("<input name='view' type='checkbox' +
value=" + priv.getAttributeId() + " checked = 'checked'>");
} else {
out.println("<input name='view' type='checkbox' +
value=" + priv.getAttributeId() + ">");
}
%>
</td>
报告它是否有效或不是您想要的。
<强>更新强>
如果您希望它们全部未选中,则因为您的元素id
属性建议它。为什么要检查对象属性以将其设置为checked
?只需添加您的元素,不要将其设置为已检查的属性。
<input name='view' type='checkbox' value="${priv.attributeId}">
答案 2 :(得分:1)
以下是您需要的功能,可随时调用:
function uncheckAll(){
var inputsContainer = document.getElementById('uncheckedByDefault');
var allInputs = inputsContainer.getElementsByTagName('input');
var len = allInputs.length;
for(var i=0; i<len; i++){
if(allInputs[i].type == 'checkbox'){
allInputs[i].checked = false;
}
}
}
答案 3 :(得分:0)
您只需要获得您感兴趣的所有元素的列表,然后您需要对它们执行某些操作。我添加了forEachNode函数,因为querySelectorAll函数实际上没有返回数组 - 它返回一个nodeList,它具有与数组类似的语法和功能,但是省略了forEach函数。
注意:如果选中了属性,则会选中复选框。不使用属性的实际值 - 只是它的存在或缺乏指示检查状态。因此,您可以在checked属性中写入任何内容而不是0。
编辑:上述说明不正确。 html中显示的'checked'属性和'checked'成员变量都控制状态。我已经更新了取消选中并检查功能。
<!DOCTYPE html>
<html>
<head>
<script>
function byId(e){return document.getElementById(e);}
window.addEventListener('load', mInit, false);
function mInit()
{
}
/*
func to be called takes 3 variables. currentElement, currentIndex, nodeList the element belongs to.
*/
function forEachNode(nodeList, func)
{
var i, n = nodeList.length;
for (i=0; i<n; i++)
{
func(nodeList[i], i, nodeList);
}
}
/*
function uncheck(elem)
{
elem.removeAttribute('checked');
}
function check(elem)
{
elem.setAttribute('checked',0);
}
*/
function uncheck(elem)
{
elem.checked = false;
elem.removeAttribute('checked');
}
function check(elem)
{
elem.checked = true;
elem.setAttribute('checked',0);
}
function checkAll()
{
var checkBoxElements = document.querySelectorAll('input[type=checkbox]');
forEachNode(checkBoxElements, check);
}
function uncheckAll()
{
var checkBoxElements = document.querySelectorAll('input[type=checkbox]');
forEachNode(checkBoxElements, uncheck);
}
</script>
<style>
</style>
</head>
<body>
<button onclick='uncheckAll()'>Uncheck all</button>
<button onclick='checkAll()'>Check all</button>
<br>
<input type='checkbox'/>CB 1
<br>
<input type='checkbox'/>CB 2
<br>
<input type='checkbox'/>CB 3
<br>
<input type='checkbox'/>CB 4
<br>
<input type='checkbox'/>CB 5
<br>
</body>
</html>
答案 4 :(得分:0)
这应该有效
var allInputs = document.getElementById("uncheckedByDefault").getElementsByTagName("input");
for (i = 0; i < allInputs.length; i++) {
if (allInputs[i].getAttribute("type") == 'checkbox') {
allInputs[i].removeAttribute("checked");
}
}