2011-06-14 67 views
11

我有輸入框。我正在尋找一種方式來火了alert()如果給定的字符串的第一個字符等於「/」 ...檢查字符串中的第一個字符

​​

這是我此刻的代碼。它不起作用,我認爲這是因爲瀏覽器不知道何時檢查該字符串......每當用戶輸入「/」作爲第一個字符時,我都需要該警報。

回答

21

嘗試了這一點:

$('#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/

+0

有一個意外的錯誤。當alert()被觸發時,用戶將嘗試用「Enter」關閉它,但是這會再次調用alert()。你會如何解決這個問題? – daGrevis 2011-06-14 18:49:08

+0

以及你可以做的是清除「繁榮」之前的價值,所以他們沒有提交:'this.value =''' – Neal 2011-06-14 18:51:07

+0

@daGrevis:http://jsfiddle.net/maniator/FewgY/2/ – Neal 2011-06-14 18:52:00

3

您需要添加一個按鍵(或類似)處理程序來讓瀏覽器運行的功能,只要按下一個鍵上輸入字段:

var input = $('#screameria input'); 
input.keypress(function() { 
    var val = this.value; 
    if (val && val.charAt(0) == '/') { 
    alert('Boom!'); 
    } 
}); 
+0

請勿使用'input.val()',使用'$(this).val()'或'this.value',你不知道有多少輸入。 – Neal 2011-06-14 18:40:33

+0

@尼爾,非常好的一點,我會更新我的答案... – maerics 2011-06-14 18:46:35

+0

現在它的基本相同我的回答ha – Neal 2011-06-14 18:47:31

相關問題