画面初期话时禁用所有元素

83 阅读1分钟

使用 disabled="disabled" 方式来禁用元素,并确保页面加载时自动禁用 div 内的所有交互元素。以下是完整的示例代码:

html

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Disable Interaction</title>
<style>
    .disabled {
        opacity: 0.5; /* 可选:使元素看起来像是被禁用 */
    }
</style>
</head>
<body>

<div class="disabled" id="disabledDiv">
    <button>Button 1</button>
    <input type="text" value="Text input">
    <input type="checkbox" checked> Checkbox
    <select>
        <option>Option 1</option>
        <option>Option 2</option>
        <option>Option 3</option>
    </select>
    <a href="#">Link</a>
</div>

<script>
    function disableElements() {
        const elements = document.querySelectorAll('#disabledDiv button, #disabledDiv input, #disabledDiv select, #disabledDiv a');
        elements.forEach(element => {
            element.disabled = true;  // 设置 disabled 属性
            element.tabIndex = -1;    // 设置 tabIndex 属性
            if (element.tagName === 'A') {
                element.onclick = function() {
                    return false;
                };
            }
        });
    }

    // 在页面加载时执行
    window.onload = disableElements;
</script>

</body>
</html>

解释

  1. HTML 部分

    • 包含了各种类型的元素:按钮、文本输入框、复选框、下拉列表和链接。
  2. CSS 部分

    • opacity: 0.5; 是可选的,用于使元素看起来像是被禁用的效果。
  3. JavaScript 部分

    • disableElements 函数用于禁用所有交互元素。
    • 使用 element.disabled = true; 来设置 disabled 属性,使元素不可交互。
    • 使用 element.tabIndex = -1; 来确保元素不可聚焦。
    • 对于链接,添加 onclick 事件处理程序,阻止其默认行为。
    • 使用 window.onload = disableElements; 确保在页面加载时执行 disableElements 函数,从而禁用 div 内的所有交互元素。

这样可以确保在页面初始化时就自动禁用 div 内的所有交互元素,包括按钮、文本输入框、复选框、下拉列表和链接。