Javascript 获取输入标记并将其设置为未选中
我想编写一个java脚本函数,它将从td中获取类型为“checkbox”的输入标记,并将其标记为未选中。以下是jsp代码:Javascript 获取输入标记并将其设置为未选中,javascript,Javascript,我想编写一个java脚本函数,它将从td中获取类型为“checkbox”的输入标记,并将其标记为未选中。以下是jsp代码: <td id="uncheckedByDefault" align=center class=listTypeOne> <% if (priv.getViewPrivilege() == 1) { %> <input name="view" type="checkbox" value='<%= priv.getAttrib
<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”。我想获取所有输入标记并将其设置为未选中。谁能告诉我怎么做。提前谢谢。我不知道我是否理解你的问题,但我会试试看 首先,您可以使用
将元素打印到您的网页中(我将在我的回答中说明如何打印),因此您不必在
中设置条件,打印元素。。。等等。都在同一个Java函数中
其次,您可以访问对象
属性,而无需调用getter。如果要将其值设置到特定字段中,则根本不需要。(即)
以下是我对你的问题的建议:
<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属性
我不知道我是否理解你的问题,但我会试试看
首先,您可以使用
将元素打印到您的网页中(我将在我的回答中说明如何打印),因此您不必在
中设置条件,打印元素。。。等等。都在同一个Java函数中
其次,您可以访问对象
属性,而无需调用getter。如果要将其值设置到特定字段中,则根本不需要。(即)
以下是我对你的问题的建议:
<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属性
您只需获得感兴趣的所有元素的列表,然后需要对它们执行一些操作。我添加了forEachNode函数,因为querySelectorAll函数实际上并不返回数组——它返回一个节点列表,该节点列表的语法和功能与数组类似,但省略了forEach函数
注意:如果选中了属性,则选中复选框。属性的实际值没有被使用——只是它的存在或缺乏决定了检查状态。因此,您可以向checked属性写入任何内容,而不是0
编辑:以上注释不正确。html中可见的“checked”属性和“checked”成员变量都控制状态。我已经更新了uncheck和check函数
<!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>
函数byId(e){returndocument.getElementById(e);}
window.addEventListener('load',mInit,false);
函数mInit()
{
}
/*
要调用的func接受3个变量。currentElement、currentIndex、nodeList元素所属的列表。
*/
函数forEachNode(节点列表,func)
{
变量i,n=节点列表长度;
对于(i=0;i您只需要获得感兴趣的所有元素的列表,然后需要对它们执行一些操作。我添加了forEachNode函数,因为querySelectorAll函数实际上并不返回数组-它返回一个节点列表,该节点列表的语法和功能与数组类似,但省略了forEach函数。
注意:如果复选框的属性已选中,则会选中该复选框。未使用该属性的实际值-只是它的存在或缺乏决定了检查状态。因此,您可以向选中的属性写入任何内容,而不是0
编辑:上面的注释不正确。html中可见的“checked”属性和“checked”成员变量都控制状态。我已经更新了uncheck和check函数
<!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>
函数byId(e){returndocument.getElementById(e);}
window.addEventListener('load',mInit,false);
函数mInit()
{
}
/*
要调用的func包含3个变量。元素所属的currentElement、currentIndex、nodeList。
*/
函数forEachNode(节点列表,func)
{
变量i,n=节点列表长度;
对于(i=0;i这应该有效
var allInputs = document.getElementById("uncheckedByDefault").getElementsByTagName("input");
for (i = 0; i < allInputs.length; i++) {
if (allInputs[i].getAttribute("type") == 'checkbox') {
allInputs[i].removeAttribute("checked");
}
}
var allInputs=document.getElementById(“uncheckedByDefault”).getElementsByTagName(“input”);
对于(i=0;i
这应该行得通
var allInputs = document.getElementById("uncheckedByDefault").getElementsByTagName("input");
for (i = 0; i < allInputs.length; i++) {
if (allInputs[i].getAttribute("type") == 'checkbox') {
allInputs[i].removeAttribute("checked");
}
}
var allInputs=document.getElementById(“uncheckedByDefault”).getElementsByTagName(“input”);
对于(i=0;i
这是您需要的函数,可以随时调用:
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;
}
}
}
函数uncheckAll(){
var inputsContainer=document.getElementById('uncheckedByDefault');
var allInputs=inputsContainer.getElementsByTagName('input');
var len=所有输入长度;
对于(var i=0;i这是您需要的函数,可以随时调用它:
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;
}
}
}
函数uncheckAll(){
var inputsContainer=document.getElementById('uncheckedByDefault');
var allInputs=inputsContainer.getElementsByTagName('input');
var len=所有输入长度;
对于(var i=0;i尝试:
inputs = document.getElementById('uncheckedByDefault').getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
// deal with inputs[index] element.
inputs[index].checked=false;
}
inputs=document.getElementById('uncheckedByDefault').getElementsByTagName('input');
用于(索引=0;索引
试试:
inputs = document.getElementById('uncheckedByDefault').getElementsByTagName('input');
for (index = 0; index < inputs.length; ++index) {
// deal with inputs[index] element.
inputs[index].checked=false;
}
inputs=document.getElementById('unc