如何让js检测输入框中输入的内容

时间:2017-10-28 00:41:09

标签: javascript html

我正在尝试让js检测输入框中的什么内容,如果用户输入代码,到目前为止我会发生一些事情

function input() {
    document.getElementById('hehe').value
    if (value == "hello") {
        window.alert("SOMETHING");
    } else {
        window.alert("SOMETHING");
    }
}
<input id="hehe" type="text" oninput="input()">

但由于某些原因它无法正常工作,我无法理解为什么

3 个答案:

答案 0 :(得分:1)

您必须先保存该值才能使用它。 document.getElementById('hehe').value返回输入文本字段的值,但在下一行中您使用的是非现有变量value

只需将其更改为:

function input() {
    var value = document.getElementById('hehe').value
    if (value == "hello") {
        window.alert("SOMETHING");
    } else {
        window.alert("SOMETHING");
    }
}

或直接使用:

function input() {
    if (document.getElementById('hehe').value == "hello") {
        window.alert("SOMETHING");
    } else {
        window.alert("SOMETHING");
    }
}

答案 1 :(得分:0)

您没有将DOM元素值分配给变量。你应该写:

var value = document.getElementById('hehe').value;

或者,使用jQuery:

var value = $('#hehe').val();

但是,另一种使用KnockoutJS库检测输入文本的自动方式是data-bind。在将绑定应用到Model后,它会自动将DOM元素与ModelView同步。

以下是一个示例:(jsfiddle

HTML:

<p>Name: <input data-bind="textInput: name"></p>
<h1>The typed name is: <span data-bind="text: name"></span>.</h1>

JavaScript的:

ko.applyBindings({
    name: ko.observable("SOMETHING")
});

答案 2 :(得分:0)

使用onkeypress代替oninput

http://jsfiddle.net/VDd6C/8/