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

时间:2011-03-27 17:23:41

标签: javascript

我想要一个脚本来测试输入是否包含问号,如果有,则更改一些css。我怎么能这样做?

2 个答案:

答案 0 :(得分:7)

使用jQuery

if ($("#myinputbox").val().indexOf("?") != -1) {

    $("#someotherelement").css("color", "red");
    $(this).css("color", "green");

} 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()

$("#myinputbox").keydown(function() {

    if ($(this).val().indexOf("?") != -1) {

        $(this).css("color", "green");

    } else {

        $(this).css("color", "red");

    }

});

答案 1 :(得分:1)

使用keydown()进行验证可以正常工作,但是在文本框中实际输入字符之前,keydown事件会触发。因此,一旦你输入'?',你就不会得到颜色变化,直到按下下一个键,触发keydown()。如果你改变它以使用keyup()它会在'?'之后立即触发放手,在键入后立即更改颜色。您可以通过提醒Jesse建议的值来测试这一点,您在文本框中输入的第一个字母实际上会显示空警报。将其更改为keyup()并使用警报测试,您将看到文本框中输入的内容。