检查字符串中的第一个字符

14

我有一个输入框。我正在寻找一种方法,如果给定字符串的第一个字符等于 '/',则触发alert()...

var scream = $( '#screameria input' ).val();

if ( scream.charAt( 0 ) == '/' ) {

  alert( 'Boom!' );

}

目前这是我的代码。它无法正常工作,我认为问题在于浏览器不知道何时检查字符串...我需要当用户输入'/'作为第一个字符时弹出警告。

2个回答

26

试试这个:

$( '#screameria input' ).keyup(function(){ //when a user types in input box
    var scream = this.value;
    if ( scream.charAt( 0 ) == '/' ) {

      alert( 'Boom!' );

    }
})

代码片段:http://jsfiddle.net/maniator/FewgY/


@daGrevis -- #1 使用 jsFiddle。#2,isFired 变量不在全局作用域中。 - Naftali
@Neal 但我只在那个匿名函数中使用它...所以这有关系吗?附注:我将使用jsFiddle。;) - daGrevis
是的,它只存在于那个匿名函数中,从未出现在其他任何位置。它会消失。——噗—— - Naftali
即使我从“isFired”中删除了“var”,也没有帮助我(我试图让变量进入全局范围)! 我现在真的很难过。 - daGrevis
使用jQuery的data值:http://jsfiddle.net/maniator/FewgY/4/ 注意每个输入框中只会弹出一次Boom - Naftali
显示剩余3条评论

4
您需要添加一个keypress(或类似的)处理程序,告诉浏览器在该输入字段上按下任何键时运行您的函数:
var input = $('#screameria input');
input.keypress(function() {
  var val = this.value;
  if (val && val.charAt(0) == '/') {
    alert('Boom!');
  }
});

不要使用 input.val(),而是使用 $(this).val() 或者 this.value,你不知道有多少个输入框。 - Naftali
@Neal,哈,没错。我想这说明我们做得很好 =) - maerics

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接