如何使用Javascript禁用和启用HTML表?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何使用Javascript禁用和启用HTML表?相关的知识,希望对你有一定的参考价值。
我想知道如何通过单击html按钮使用javascript禁用和启用HTML表格上的突出显示。
这是我的代码:
tabletest.html
<html>
<head>
<script type="text/javascript">
function disableTable() {
document.getElementbyId('tblTest').disabled = true;
}
function enableTable() {
document.getElementbyId('tblTest').disabled = false;
}
</script>
<style type="text/css">
table#tblTest {
width: 100%;
margin-top: 10px;
font-family: verdana,arial,sans-serif;
font-size:12px;
color:#333333;
border-width: 1px;
border-color: #666666;
border-collapse: collapse;
}
table#tblTest tr.highlight td {
background-color: #8888ff;
}
table#tblTest tr.normal {
background-color: #ffffff;
}
table#tblTest th {
white-space: nowrap;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #dedede;
}
table#tblTest td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #ffffff;
}
</style>
</head>
<body>
<table id="tblTest">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
</thead>
<tbody>
<tr onMouseOver="this.className='highlight'" onMouseOut="this.className='normal'" >
<td>Tom</td>
<td>UK </td>
</tr>
<tr onMouseOver="this.className='highlight'" onMouseOut="this.className='normal'" >
<td>Hans</td>
<td>Germany</td>
</tr>
<tr onMouseOver="this.className='highlight'" onMouseOut="this.className='normal'" >
<td>Henrik</td>
<td>Denmark</td>
</tr>
<tr onMouseOver="this.className='highlight'" onMouseOut="this.className='normal'" >
<td>Lionel</td>
<td>Italy</td>
</tr>
<tr onMouseOver="this.className='highlight'" onMouseOut="this.className='normal'" >
<td>Ricardo</td>
<td>Brazil</td>
</tr>
<tr onMouseOver="this.className='highlight'" onMouseOut="this.className='normal'" >
<td>Cristiano</td>
<td>Portugal</td>
</tr>
</tbody>
</table>
<input type="button" onclick="disableTable();" value="Disable" />
<input type="button" onclick="enableTable()" value="Enable" />
</body>
</html>
每当我点击Disable
按钮时,表格突出显示仍然启用。我对此有点新意,所以我真的需要你的帮助。
<html>
<head>
<script type="text/javascript">
disable = new Boolean();
function highlight(a) {
if(disable==false)a.className='highlight'
}
function normal(a) {
a.className='normal'
}
</script>
<style type="text/css">
table#tblTest {
width: 100%;
margin-top: 10px;
font-family: verdana,arial,sans-serif;
font-size:12px;
color:#333333;
border-width: 1px;
border-color: #666666;
border-collapse: collapse;
}
table#tblTest tr.highlight td {
background-color: #8888ff;
}
table#tblTest tr.normal {
background-color: #ffffff;
}
table#tblTest th {
white-space: nowrap;
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #dedede;
}
table#tblTest td {
border-width: 1px;
padding: 8px;
border-style: solid;
border-color: #666666;
background-color: #ffffff;
}
</style>
</head>
<body>
<table id="tblTest">
<thead>
<tr>
<th>Name</th>
<th>Address</th>
</tr>
</thead>
<tbody>
<tr onMouseOver="highlight(this)" onMouseOut="normal(this)" >
<td>Tom</td>
<td>UK </td>
</tr>
<tr onMouseOver="highlight(this)" onMouseOut="normal(this)" >
<td>Hans</td>
<td>Germany</td>
</tr>
<tr onMouseOver="highlight(this)" onMouseOut="normal(this)" >
<td>Henrik</td>
<td>Denmark</td>
</tr>
<tr onMouseOver="highlight(this)" onMouseOut="normal(this)" >
<td>Lionel</td>
<td>Italy</td>
</tr>
<tr onMouseOver="highlight(this)" onMouseOut="normal(this)" >
<td>Ricardo</td>
<td>Brazil</td>
</tr>
<tr onMouseOver="highlight(this)" onMouseOut="normal(this)" >
<td>Cristiano</td>
<td>Portugal</td>
</tr>
</tbody>
</table>
<input type="button" onclick="disable = true;" value="Disable" />
<input type="button" onclick="disable = false;" value="Enable" />
</body>
</html>
修复了你的代码。使用函数检查它是否被禁用,如果不是,则突出显示。如果是,那就不要。很简单。
通过将表保留在“fieldset”标记中并通过Javascript禁用它,可以阻止包含输入字段的整个表
如果要将其“查看”禁用或启用,请将类规则添加到样式表,并将类添加到表中以启用或禁用。
function disableTable() {
addClassName(document.getElementbyId('tblTest'), 'disabled');
}
function enableTable() {
removeClassName(document.getElementbyId('tblTest'), 'disabled');
}
function trim(s) {
return s.replace(/(^s+)|(s+$)/g,'').replace(/s+/g,' ');
}
function hasClassName (el, cName) {
var re = new RegExp('(^|\s+)' + cName + '(\s+|$)');
return el && re.test(el.className);
}
function addClassName(el, cName) {
if (!hasClassName(el, cName)) {
el.className = trim(el.className + ' ' + cName);
}
}
function removeClassName(el, cName) {
if (hasClassName(el, cName)) {
var re = new RegExp('(^|\s+)' + cName + '(\s+|$)','g');
el.className = trim(el.className.replace(re, ''));
}
}
这将从你的tr中删除onmouseover事件。
function disableTable() {
var rows = document.getElementsByTagName("tr");
for (var i = 0; i < rows.length; i++) {
rows[i].onmouseover= null;
}
}
您无法禁用表格。你想用这个来实现什么?这些表格无论如何都是只读的。
如果表中有输入标记,则可以逐个禁用它们。
另见"Disabling" an HTML table with javascript
无法禁用表格。你想要做的是禁用输入按钮,并在HTML表格上有一个类,它会给你选择按钮的onclick事件淡出/淡出的幻觉。
您无法禁用表格。表只显示数据 - 在HTML中,您只能禁用输入,选择和textareas等表单元素,因此您无法再与它们进行交互(即在其中键入数据,单击它或选择一个选项)。
我认为你想要实现的是在按钮点击上删除事件onMouseOver / -Out?你可能最好使用jQuery - 看看Events。解决方案是在按钮点击时添加和删除事件,就像在这个fiddle中一样。
请遵循以下食谱:
定义两组CSS规则。一套规则总是从table.enabled
开始,另一组用table.disabled
开始
要启用/禁用整个表,请找到DOM元素(当表具有document.getElementbyId('tblTest')
id
时使用tblTest
)并分配相应的类:
document.getElementbyId('tblTest').classname = enabled ? 'enabled' : 'disabled';
如果你想让它在任何地方“无法点击” - 你可以在上面添加一个相同大小的transperent div。
<html>
<script>
function disableTable(){
document.getElementById("myTableFieldSet").disabled = true;
}
function enableTable(){
document.getElementById("myTableFieldSet").disabled = false;
}
</script>
<body>
<form>
<fieldset>
<!-- place the table in a separate fieldset -->
<fieldset id="myTableFieldSet">
<table id="myTable">
<tr>
<td>Name</td>
<td>Email</td>
</tr>
<tr>
<td><input type="text"></td>
<td><input type="email"></td>
</tr>
</table>
</fieldset>
</fieldset>
<button type="button" onclick="disableTable()">Disable Table</button>
<button type="button" onclick="enableTable()">Enable Table</button>
</form>
</body>
</html>
以上是关于如何使用Javascript禁用和启用HTML表?的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 javascript/jquery 在选择下拉菜单中启用/禁用引导选项
asp.net c#.net jquery / javascript 如何使用复选框启用或禁用 requiredfieldvalidator
使用 javascript 和 asp.net 启用和禁用按钮