簡體   English   中英

javascript addClass沒有運行

[英]javascript addClass not running

目標:當輸入不是有效/正確的輸入時,將輸入字段的邊框顏色更改為紅色。 例如 如果在密碼字段中輸入的是“ abcd”,則邊框顏色應為紅色,因為“ abcd”不在8到20個字符之間。

問題:當一個CSS類被添加(通過JavaScript)到HTML輸入,其結果是,該行和JavaScript的任何以下行永遠不會運行。

<style type="text/css">
.redborder { border:1px solid red; }
</style>

<script>
$(document).ready(function() {
    $('#email').keyup(function() {
        checkInput("email");
    });
});

function checkInput(id) {
    alert("Got here");
    var field = document.getElementById("email");
    if (field.value == null || field.value === "") {
        alert("Adding 'redborder' class");
        field.addClass('redborder');
        alert("Added 'redborder' class");
    } else {
        alert("Removing 'redborder' class");
        field.removeClass('redborder');
        alert("Removed 'redborder' class");
    }
}
</script>

在此代碼中,當我在電子郵件字段中鍵入內容時,將顯示“此處提示”和“刪除'redborder'類”警報。 但是,“已刪除的”紅色邊框”類別”警報和紅色邊框永遠不會顯示。

您正在按DOM對象訪問元素,以訪問需要使用jquery對象調用的jQuery方法。

$(field).addClass('redborder');

您需要在字段上使用jQuery選擇器。 更改:

var field = document.getElementById("email");

至:

var field = $('#email');

.addClass()是jQuery方法,而不是本機JavaScript方法。 通過使用jQuery選擇器,您可以自動訪問jQuery原型對象附帶的所有方法。

請記住,jQuery對象是本機DOM對象的超集。 也就是說,jQuery對象具有所有本機DOM屬性和方法,以及jQuery和頁面上所有jQuery擴展所添加的屬性和方法。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM