Javascript 如何测试输入是否包含问号?

Javascript 如何测试输入是否包含问号?,javascript,Javascript,我想有一个脚本,测试输入是否包含问号,如果包含问号,则更改一些css。如何执行此操作?使用jQuery: if (document.getElementById('myinputbox').value.indexOf("?") != -1) { document.getElementById("someotherelement").className += " NewClass"; this.className += " NewClass"; } else { al

我想有一个脚本,测试输入是否包含问号,如果包含问号,则更改一些css。如何执行此操作?

使用jQuery:

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");

    }

});