Javascript 如何测试输入是否包含问号?
我想有一个脚本,测试输入是否包含问号,如果包含问号,则更改一些css。如何执行此操作?使用jQuery:Javascript 如何测试输入是否包含问号?,javascript,Javascript,我想有一个脚本,测试输入是否包含问号,如果包含问号,则更改一些css。如何执行此操作?使用jQuery: if (document.getElementById('myinputbox').value.indexOf("?") != -1) { document.getElementById("someotherelement").className += " NewClass"; this.className += " NewClass"; } else { al
if (document.getElementById('myinputbox').value.indexOf("?") != -1) {
document.getElementById("someotherelement").className += " NewClass";
this.className += " NewClass";
} else {
alert("Doesn't contain a question mark");
}
不使用jQuery:
if (document.getElementById('myinputbox').value.indexOf("?") != -1) {
document.getElementById("someotherelement").className += " NewClass";
this.className += " NewClass";
} else {
alert("Doesn't contain a question mark");
}
更新:正在验证onKeyDown
使用keydown验证有效,但是keydown事件在字符实际输入文本框之前触发。因此,一旦你输入了一个“?”,在按下下一个键并按下该键之前,你不会得到颜色变化。如果您将其更改为使用keyup,它将在释放“?”后立即启动,在键入后立即更改颜色。您可以通过像Jesse建议的那样发出警报来测试这一点,您在文本框中键入的第一个字母实际上将显示一个空警报。将其更改为keyup并使用警报测试,您将看到刚刚在文本框中键入的内容。但是,当用户在输入框中键入时,如何实时执行此操作?只需挂接onChange事件即可。我正在更新响应。请尝试添加:alert$this.val;就在条件之上。它着火了吗?在if/then上面?不,它不会启动。但是,如果我将更改切换为单击,它会启动。
$("#myinputbox").keydown(function() {
if ($(this).val().indexOf("?") != -1) {
$(this).css("color", "green");
} else {
$(this).css("color", "red");
}
});