我想要一个脚本来测试输入是否包含问号,如果有,则更改一些css。我怎么能这样做?
答案 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()并使用警报测试,您将看到文本框中输入的内容。