通过一个输入字段隐藏其他元素 - Javascript

时间:2014-11-04 12:48:58

标签: javascript html javascript-events hide

请问我能否为我的Javascript代码提供一些简短的帮助。我有一个输入字段,它隐藏DIV元素,只要它完全为空(没有文本):

if (search_value !== "") {
    document.getElementById("frei").className = "frei1";
    }

它完全符合我的要求,主要问题是一旦输入字段被激活,当我开始擦除文本时,直到输入为空,比我隐藏的DIV出现,即使输入不包含文本(因为我删除了它)。这个函数仅在第一页加载时很好,比我在输入中输入任何内容并擦除它时,我的javasript代码不是函数。

请你给我一个建议看起来像Javasript代码,它隐藏DIV每次输入字段不包含文字?即使文本被手动删除了?

非常感谢,并为此类问题道歉。在基本的Javascript中我不强。

2 个答案:

答案 0 :(得分:1)

该代码仅在页面加载时执行,但您希望每次有人输入您的输入时运行该代码,为此您可以使用onkeyup事件:

document.getElementById("yourInput").onkeyup = function () {
    if (this.value !== "") {
        document.getElementById("frei").className = "frei1";
    }
    else {
        document.getElementById("frei").className = "";
    }
};

DEMO

如果您还需要它在页面加载上运行,请将其解压缩到一个函数,然后您也可以在页面加载时调用该函数:

function setDisplay() {
    if (document.getElementById("yourInput").value !== "") {
        document.getElementById("frei").className = "frei1";
    }
    else {
        document.getElementById("frei").className = "";
    }
}

然后在页面加载时调用它:

setDisplay();

然后还将它附加到onkeyup事件,就像我们在第一个实例中所做的那样:

document.getElementById("yourInput").onkeyup = setDisplay;

答案 1 :(得分:0)

document.getElementById("id").oninput = function() {
    if (this.value !== "") {
        document.getElementById("frei").className = "frei1";
   }
}

document.getElementById("id").addEventListener('input',function() {
    if (this.value !== "") {
        document.getElementById("frei").className = "frei1";
   }
}, false);