Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zmiana kropki na przecinek
Forum PHP.pl > Forum > Po stronie przeglądarki > JavaScript
kubax33
tamat często poruszany jednak równie często zauważyłem bez konretnego rozwiązania na forum.

  1. <script type="text/javascript">
  2.  
  3. function check(Sender,e){
  4. var key = e.which ? e.which : e.keyCode;
  5. if(key == 44){
  6. Sender.value += '.';
  7. return false;
  8. }
  9. }
  10.  
  11. function check(Sender,e){
  12. var key = e.which ? e.which : event.keyCode;
  13. if(key == 44){
  14. if (document.selection) { //IE
  15. var range = document.selection.createRange();
  16. range.text = '.';
  17. } else if (Sender.selectionStart || Sender.selectionStart == '0') {
  18. var start = Sender.selectionStart;
  19. var end = Sender.selectionEnd;
  20. Sender.value = Sender.value.substring(0, start) + '.' +
  21. Sender.value.substring(end, Sender.value.length);
  22. Sender.selectionStart = start+1;
  23. Sender.selectionEnd = start+1;
  24. } else {
  25. Sender.value += '.';
  26. }
  27. return false;
  28. }
  29. }
  30. </script>


  1. <input type='text' onkeypress='return check(this,event);'>


Skrypt zmienia przecinki na kropki jednak jeśli wklejam skopiowaną liczbę przecinek i tak zostaje. Czy można ten skrypt dostosować, aby dynamicznie zmieniał też wklejoną liczbę, a nie tylko manulanie wpisaną przez użytkownika? Jeśli nie to może ktoś posiada jakieś ciekawe rozwiązanie spełanijące te wymagania.


pitu
Z wykorzystaniem jQuery.

http://jsfiddle.net/px4wu/
kubax33
Umieściłem kod jquery w pliku: plik.js
textarea w pliku: index.html
  1. <script src="plik.js"></script>
  2. <input type='text' onkeypress='return check(this,event);'>


i niestety nie działa chociaz widzę w przesłanym przykładzie funkcjonuje to właśnie w taki na jakim mi zależało.
Posiadam serwer w OVH perso czy może tam nie ma jQuery 2.0 ale wątpie...
kamil4u
jQuery się dołącza poprzez <script>. Przeczytaj jakiś bardzo podstawowy kurs o nim.
kubax33
Dobrze wiedzieć. Dołączyłem w ten sposób co robię źlę, że to nie działa?

  1. <head>
  2. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  3.  
  4. <script type="text/javascript">
  5.  
  6. $("#txt").bind("change keyup input",function(){
  7. text = this.value.replace(",",".");
  8. $("#txt").val(text);
  9. });
  10.  
  11. </script>
  12.  
  13.  
  14. </head>
  15.  
  16. <textarea id="txt"></textarea>
kamil4u
W tym miejscu nie masz jeszcze załadowanego DOM-u. Jeśli Cię nie interesuje JS to bez zbędnych opisów: http://api.jquery.com/ready/

Czyli:
Kod
$(function() {
[[[[Twój kod]]]]
});


--edit--
Jeśli Cię interesuje to się pytaj to podeślę jakieś linki.
kubax33
Dziękuje faktycznie pomogło.

  1. <head>
  2. <script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js"></script>
  3.  
  4. <script type="text/javascript">
  5. $(function() {
  6. $("#txt").bind("change keyup input",function(){
  7. text = this.value.replace(",",".");
  8. $("#txt").val(text);
  9. text = this.value.replace(" ","");
  10. $("#txt").val(text);
  11. });
  12. });
  13. </script>
  14.  
  15.  
  16. </head>
  17.  
  18. <textarea id="txt"></textarea>
  19.  


dodatkowo dodałem przydatne usunięcie spacji mam nadzieję, że w dobry sposób ponieważ funkcjonuje
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.