2011-06-14 25 views
11

Giriş kutunuz var. Verilen dizesinin ilk karakteri '/' eşitse benİlk Bakiyeyi Kontrol Et

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

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

    alert('Boom!'); 

} 

O anda benim kod ... Yangın yukarı alert() için bir yol arıyorum. Bu işe yaramıyor ve sanırım bu tarayıcı o dizeyi ne zaman kontrol edeceğini bilmiyor ... Kullanıcı '/' ilk karakter olarak girdiğinde o uyarıya ihtiyacım var.

cevap

21

bu deneyin:

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

     alert('Boom!'); 

    } 
}) 

Fiddle: anahtar o giriş alanına basıldığında Eğer fonksiyonunu çalıştırmak için tarayıcı anlatmak için bir tuşa basma (veya benzeri) işleyicisi eklemeniz gerekir http://jsfiddle.net/maniator/FewgY/

+0

Beklenmeyen bir hata var. 'Alert() 'tetiklendiğinde, kullanıcı bunu" Enter "ile kapatmaya çalışacaktır, ancak bu' alert()' i tekrar çağırır. Bunu nasıl çözeceksin? – daGrevis

+0

iyi yapabildiğiniz şey, "Boom" dan önceki değeri temizlemektir, böylece hiçbir şey göndermezler: "this.value =" ' – Neal

+0

@daGrevis: http://jsfiddle.net/maniator/FewgY/2/ – Neal

3

:

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

input.val() ',' $ (this) .val() 'veya' this.value' komutunu kullanın, kaç tane girdi olduğunu bilmiyorsunuz. – Neal

+0

@Neal, çok iyi bir nokta, cevabımı güncelleyeceğim ... – maerics

+0

şimdi benim cevabımla aynı olduğunu biliyorum ha – Neal

İlgili konular