2011-06-14 11 views
11

Tengo caja de entrada. Estoy buscando una manera de fuego arriba alert() si el primer carácter de la cadena dada es igual a '/' ...Verificar primer Char en cadena

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

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

    alert('Boom!'); 

} 

Es mi código en el momento. No funciona y creo que es porque ese navegador no sabe cuándo revisar esa cadena ... Necesito esa alerta cada vez que el usuario ingresa '/' como primer caracter.

Respuesta

21

Trate de hacer esto:

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

     alert('Boom!'); 

    } 
}) 

violín: http://jsfiddle.net/maniator/FewgY/

+0

Hay un error inesperado. Cuando 'alert()' se activa, el usuario intentará cerrarlo con "Enter", pero eso volverá a llamar a 'alert()'. Como resolverias esto? – daGrevis

+0

bueno, lo que puedes hacer es limpiar el valor antes del 'Boom' para que no envíen nada:' this.value = '' ' – Neal

+0

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

3

Es necesario añadir una pulsación de tecla (o similar) manejador para decirle al navegador para ejecutar su función cada vez que se pulsa una tecla en el campo de entrada :

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

No utilice 'input.val()', use '$ (this) .val()' o 'this.value', no tiene idea de cuántas entradas hay. – Neal

+0

@Neal, muy buen punto, voy a actualizar mi respuesta ... – maerics

+0

ahora es básicamente idéntica a mi respuesta ha – Neal

Cuestiones relacionadas