Questo JavaScript in jQuery, permette di intercettare i caratteri digitati in una input box html e sostituire automaticamente il carattere punto con la virgola tramite l'evento keydown

JavaScript

$("#idDellaTextbox").keydown(function(event) {
  var key = event.which;
  if (key === 110 || key === 190) {  // codice carattere punto
    var obj = $(this);
    obj.val(obj.val() + ',');
    event.preventDefault();
  }
});
Per funzionare richiede jQuery.
Il codice 190 corrisponde al punto sulla tastiera, mentre il 110 a quello sul tastierino numerico
Ho aggiornato lo script per usare l'evento keydown in quanto l'evento keypress è deprecato.

Versione in JavaScript puro

Questa è una versione in Vanilla JS, preferibile rispetto al precedente in quanto non richiede la libreria jQuery

JavaScript

document.getElementById("idDellaTextbox").addEventListener("keydown", function(event) {
  var key = "which" in event ? event.which : event.keyCode;
  if (key === 110 || key === 190) {  // codice carattere punto
    event.target.value += ",";
    event.preventDefault();
  }
});

Demo

Scrivi un numero con il punto

Versione migliorata

Questa versione in Vanilla JS è un miglioramento della precedente in quanto gestisce il carattere da sostituire in qualunque posizione del testo (non solo alla fine)

JavaScript

document.getElementById("idDellaTextbox").addEventListener("keydown", function(event) {
  var key = "which" in event ? event.which : event.keyCode;
  if (key === 110 || key === 190) {  // codice carattere punto
    var replacement = ",";
    if (this.selectionStart || this.selectionStart == '0') {
      var start = this.selectionStart;
      var end = this.selectionEnd;
      var v = event.target.value;
      event.target.value = v.substring(0, start) + replacement + v.substring(end, v.length);
      // riposiziono il cursore
      this.selectionStart = start + 1;
      this.selectionEnd = start + 1;
    } else {  
      // se non funziona il precedente lo posiziono alla fine
      event.target.value += replacement;
    }
    event.preventDefault();
  }
});

Demo 2

Scrivi un numero con il punto
Tags:
JavaScript184 JQuery33 Vanilla JS24
Potrebbe interessarti anche: