我正在尝试让js检测输入框中的什么内容,如果用户输入代码,到目前为止我会发生一些事情
function input() {
document.getElementById('hehe').value
if (value == "hello") {
window.alert("SOMETHING");
} else {
window.alert("SOMETHING");
}
}
<input id="hehe" type="text" oninput="input()">
但由于某些原因它无法正常工作,我无法理解为什么
答案 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
。