如何使用 JavaScript 移除 HTML 輸入元素的“disabled”屬性?


在 HTML 中,我們可以使用 input 元素透過建立表單或其他方式來獲取使用者的輸入。input 元素有多種型別,例如複選框、單選按鈕、文字、數字等。

我們可以對每個元素使用“disabled”屬性來停用輸入欄位並阻止使用者與輸入元素互動。在某些情況下,我們需要使用 JavaScript 新增和移除 disabled 屬性。例如,我們希望獲取年齡大於 18 歲的使用者的身份證號碼。因此,我們需要僅當用戶輸入的年齡大於 18 時才啟用身份證號碼輸入欄位,方法是使用 JavaScript 移除 disabled 屬性。

在這裡,我們將學習使用 JavaScript 從 HTML 輸入元素移除 disabled 屬性的各種方法。

使用 removeAttribute() 方法

在第一種方法中,我們將使用 removeAttribute() 方法移除 disabled 屬性。它用於移除我們作為方法引數傳遞的 HTML 元素的任何屬性。

語法

使用者可以按照以下語法使用 removeAttribute() 方法從 input 元素中移除“disabled”屬性。

element.removeAttribute("disabled");

在上面的語法中,我們將屬性名稱“disabled”作為方法的引數傳遞。

示例

在下面的示例中,我們在 HTML 部分定義了文字輸入欄位。每當使用者點選按鈕時,它都會呼叫 removeDisabled() 函式。

在 remvoeDisabled() 函式中,我們透過其 id 訪問 input 元素。之後,我們透過將 input 元素作為引用並傳遞“disabled”作為引數來執行 removeAttribute() 方法。

在輸出中,使用者可以觀察到,在點選按鈕之前他們無法與 input 元素互動,但在點選按鈕之後他們可以互動。

<html>
<body>
    <h3> Using the <i> removeAttribute() </i> method to remove disabled attribute from HTML input element </h3>
    <input type = "text" name = "first name" id = "name" value = "Shubham" disabled>
    <button onclick = "removeDisabled()"> Remove Disabled </button>
    <script>
        function removeDisabled() {
            let name = document.getElementById("name");
            name.removeAttribute("disabled");
        }
    </script>
</html>

修改“disabled”屬性

在這種方法中,我們將修改“disabled”屬性的值,而不是從 HTML 元素中移除 disabled 屬性。“disabled”屬性採用布林值。disabled 屬性的預設值為“true”,但我們可以將其設定為“false”,它將與我們從任何 input 元素中移除“disabled”屬性的效果相同。

語法

使用者可以按照以下語法將 disabled 屬性的值修改為 false。

input.disabled = false;

示例 1

在下面的示例中,我們建立了多個文字 input 元素,預設情況下都處於停用狀態。在 JavaScript 中,我們訪問所有 input 元素並使用 forEach() 方法對 input 的節點列表進行迭代。在 forEach() 方法內部,我們將每個 input 的 disabled 屬性的值修改為 false。

在輸出中,使用者可以觀察到,點選按鈕後所有 input 元素都可互動。

<html>
<body>
    <h3> setting the <i> disable property value </i> to remove disabled attribute from HTML input element  </h3>
    <!-- creating multiple text inputs -->
    <input type = "text" id = "myText" value = "Hello World!" disabled> <br> <br>
    <input type = "text" id = "second" value = "How are you?" disabled>
    <button onclick = "removeDisabled()"> Remove Disabled </button>
    <script>
        function removeDisabled() {
            let textsInput = document.querySelectorAll("input[type='text']");
            textsInput.forEach((input) => {
                input.disabled = false;
            });
        }
    </script>
</html>

示例 2

在下面的示例中,我們建立了多個複選框輸入並向所有複選框添加了 disabled 屬性以停用它們。在 removeDisable() 函式中,我們訪問所有複選框並修改每個複選框的“disabled”屬性。

<html>
<body>
    <h3> Setting the <i> disable property value </i> to remove disabled attribute from HTML input element.</h3>
    <!-- creating multiple checkboxes -->
    <input type = "checkbox" value = "male" disabled> male
    <input type = "checkbox" value = "female" disabled> female
    <input type = "checkbox" value = "other" disabled> Other
    <button onclick = "removeDisabled()"> Remove Disabled </button>
    <script>
        function removeDisabled() {
            let checkboxes = document.querySelectorAll('input[type="checkbox"]');
            for (let i = 0; i < checkboxes.length; i++) {
                checkboxes[i].disabled = false;
            }
        }
    </script>
</html>

我們學習瞭如何使用 JavaScript 移除 input 元素的 disabled 屬性。在第一種方法中,我們使用了 removeAttribute() 方法,該方法會移除 input 元素的 disabled 屬性。在第二種方法中,我們修改了 disabled 屬性的值而不是將其從 HTML 元素中移除,但我們能夠實現啟用 input 元素的目標。

更新於: 2023年5月17日

3K+ 瀏覽量

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告