如何使用 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>
每当我单击禁用
按钮时,表格突出显示仍然启用。 我对此有点陌生,所以我真的需要你的帮助。
I want to know how can I disable and enable the highlighting on an HTML table using Javascript by clicking an html button.
Here are my codes:
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>
Whenever I click the Disable
button the table highlighting is still enabled.
I'm kinda new to this so I really need your help.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(10)
修正了你的代码。使用一个函数检查它是否被禁用,如果没有,则突出显示。如果是的话,那就不要。够简单的。
演示
Fixed your code. Use a function to check if it's disabled, if it isn't, then highlight. If it is, then don't. Simple enough.
Demo
如果您希望它“看起来”已禁用或已启用,请将类规则添加到样式表并将类添加到表中以启用或禁用。
If you want it to "look" disabled or enabled, add class rules to a style sheet and add classes to the table for enabled or disabled.
这将从您的 tr 中删除 onmouseover 事件。
This will remove the onmouseover events from your tr's.
您无法禁用表。你想用这个实现什么目标?无论如何,这些表都是只读的。
如果表中有输入标签,则可以一一禁用它们。
另请参阅“使用 javascript 禁用”HTML 表格
You can not disable a table. What do you want to achieve with this? The tables are read only anyway.
If you have input tags in the table, you can disable those one by one.
See also "Disabling" an HTML table with javascript
无法禁用表。您想要做的是禁用输入按钮并在 HTML 表上设置类,该类在您选择的按钮的 onclick 事件上提供淡出/变灰的错觉。
A table cannot be disabled. What you want to do is disable the input button and have class on the HTML Table that gives sort of the illusion of fading out/ graying out on the onclick event of the button you choose.
您无法禁用表。表格仅显示数据 - 在 HTML 中,您只能禁用输入、选择和文本区域等表单元素,因此您无法再与它们交互(即在其中键入数据、单击它或选择一个选项)。
我认为您想要实现的目标是让 onMouseOver/-Out 事件在按钮单击时删除?您可能最好使用 jQuery - 看看 事件。解决方案是添加和删除按钮单击事件,如 fiddle 所示。
You cannot disable a table. A table just displays data - in HTML you can only disable form elements like inputs, selects and textareas, so you cannot interact with them anymore (ie type data in it, click it or select an option).
I think what you are trying to achive is to having the events onMouseOver/-Out remove on button click? You might be better off to use jQuery - take a look at Events. The solution is to add and remove events on button click like in this fiddle.
请遵循以下秘诀:
定义两组 CSS 规则。一组规则始终以
table.enabled
开头,另一组规则始终以table.disabled
开头。要启用/禁用整个表,请找到 DOM 元素(使用
document. getElementbyId('tblTest')
(当表具有id
tblTest
时)并分配相应的类:Follow this recipe:
Define two sets of CSS rules. One set of rules always starts with
table.enabled
, the other withtable.disabled
To enable/disable the whole table, locate the DOM element (using
document.getElementbyId('tblTest')
when the table has theid
tblTest
) and assign the respective class:如果你想让表格在任何地方“不可点击” - 你可以在上面添加一个相同大小的透明div。
If you want to make the table "unclickable" at any place of it - you may add a transperent div above with the same size.
通过将表保留在“fieldset”标记中并通过 Javascript 禁用它,可以阻止包含输入字段的整个表
A entire table with input fields can be blocked by keeping the table in "fieldset" tag and disable it via Javascript