Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: <html>stringi - replace</html>
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
damianooo
Witam , robię coś takiego że do inputa dodaję jeden znak , znak dolara ($) ... jednak gdy zapiszę formularz to w edycji pokazują mi się dwa dolary , bo jest ten co był zapisany + ten co dodaję ... mam też metodę którą usuwam dolara po wyjściu z pola inputa. Gdy jestem w polu to dolara ma nie być . Kod mam taki:

  1. var fieldValue = $('#price').val();
  2. $('#price').val(fieldValue+'$');
  3.  
  4. $('#price').blur(function() {
  5. $(this).val(fieldValue+'$');
  6. });
  7.  
  8. $('#price').focus(function() {
  9. fieldValue = fieldValue.replace('$','');
  10. $(this).val(fieldValue);
  11. });


jak zrobić aby usuwał mi ze stringa wszystkie znalezione dolary ? ...


dzięki
Majcon
Kod
fieldValue = fieldValue.replace(/$/gi,'');

Gdy przy wywołaniu metody replace
dodamy przy pierwszym argumencie literę
g ( ang. global ) wówczas zamiana
zostanie przeprowadzona globalnie czyli
w całym ciągu znaków. Jest jeszcze i i ( ang. insensitive chyba ;D ) wówczas nie będzie brało pod uwagę wielkości znaków w Twoim przypadku raczej nie potrzebne no ale ;p
damianooo
jeszcze jedno ...

Czy w moim przykładzie pobranie wartości z pola aby dopisać do niej $ (dolara) jest dobre , gdy robię to w ten sposób :

var fieldValue = $('#price').val();

?

Bo niestety przy edycji jak chcę zmienić wartość w polu dla tego pola to po wyjściu z niego nadal jest wartość poprzednia , kasuje mi się ta którą wpiszę ...

coś chyba robię źle , albo źle się do tego zabieram



poprawne rozwiązanie to:

$('#price').blur(function() {
$(this).val($('#price').val()+'$');
});

$('#price').focus(function() {
$(this).val($(this).val().replace('$',''));
});



i to mi wystarcza
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.