2013-08-29 7 views
9

czy możesz mi powiedzieć, jak zamienić spację na podkreślenie w tym samym czasie (kiedy wprowadzam tekst w polu wejściowym)? Jeśli mam strunę, użyłem tego.Jak zamienić spację na podkreślenie w tym samym czasie (gdy wprowadzam tekst w polu wejściowym)?

replace(/ /g,"_"); 

Ale szukam kiedy użytkownik wprowadź tekst w polu tekstowym, a następnie automatycznie zastąpić przestrzeń podkreślenia .I używany keyup zdarzenie to tylko ogień raz pierwszy.

$("#test").keyup(function() { 
    var textValue = $(this).val(); 
    if(textValue==' '){ 
     alert("hh"); 
    } 
}); 
+0

przede wszystkim lepsze wykorzystanie keydown. –

+0

W podobnej sytuacji umieściłem go w html jako "onKeyDown =" foo(); "" –

Odpowiedz

12

DEMO

$("#test").keyup(function() { 
    var textValue = $(this).val(); 
    textValue =textValue.replace(/ /g,"_"); 
    $(this).val(textValue); 
}); 

Aktualizacja

DEMO

$("#test").keyup(function() { 
    this.value = this.value.replace(/ /g, "_"); 
}); 
+1

To jest ogólnie lepsze podejście niż testowanie, który klawisz został naciśnięty. Obciążenie jest minimalne –

+0

może rozwiązać moje ciało również ten problem.http: //stackoverflow.com/questions/18502449/why-data-position-fixed-data-tap-toggle-false-not-work/18502566? Noredirect = 1 # comment27204600_18502566 – Rohit

+0

@tushar proszę sprawdzić to pytanie również rozwiązać ten http://stackoverflow.com/questions/18502449/why-data-position-fixed-data-tap-toggle-false-not-work/18502566?noredirect=1 # comment27204600_18502566 – Rohit

0

Można wykryć, który klawisz został naciśnięty dodając argument do wywołania zwrotnego (słownie e), a następnie testowanie to which nieruchomość (z documentation)

$("#test").keyup(function(e) { 
    if(e.which === 32 /*space*/){ 
     alert("hh"); 
    } 
}); 
+0

proszę pomóc rozwiązać to pytanie: //stackoverflow.com/questions/18502449/why-data-position-fixed-data- tap-toggle-false-not-work/18502566? noredirect = 1 # comment27204600_18502566 – Rohit

0

można zastąpić całą wartość w przypadku z .split (' ') .join (' _'); Jest szybszy niż zamiana.

tak,

$("#test").keyup(function() { 
    $(this).val($(this).val().split(' ').join('_')); 
}); 
1

wypróbować ten kod

$("#test").keyup(function(e) { 
    (/ /i).test(this.value)?this.value = this.value.replace(/ /ig,'_'):null; 
}); 
0
$("#test").keypress(function(e) { 
    var textValue = $(this).val(); 
    if(e.keyCode === 32){ 
     $("#test").val(textValue + "_"); 
     return false; 
    } 
}); 
+0

Proszę pomóż w tym problemie http://stackoverflow.com/questions/18502449/why-data-position-fixed-data-tap-toggle-false-not-work/18502566?noredirect=1#comment27204600_18502566 – Rohit

3

demo

Wystarczy spróbować tej Demo

$("#test").keyup(function() { 
    if ($(this).val().match(/[ ]/g, "") != null) { 
     $(this).val($(this).val().replace(/[ ]/g, "_")); 
    } 
}); 
+1

IMHO to jest lepsze niż zaakceptowana odpowiedź. –

Powiązane problemy