Me gustaría impedir que el usuario escriba una coma o un punto mientras escribe en el campo de entrada del número de tipo.
Ya he buscado y encontrado solución, pero no funciona.
Si escribo, por ejemplo, punto, no importa cuál de las dos soluciones a continuación, el campo de entrada se borra.
Este es mi campo de entrada
<input type="number" class="form-control numbersOnly" name="angebot" id="angebot" min="1" step="1" placeholder="<?php the_field('language_shop_detail_button_counter_offer_placeholder', 'option'); ?>">Esos son los 2 enfoques que no funcionan.
jQuery('.numbersOnly').keyup(function () { this.value = this.value.replace(/[^0-9\.]/g,''); });y
$('.angebotAbgebenContainer #angebot').keyup(function(event) { var current = $(".angebotAbgebenContainer #angebot").val(); console.log("current", current); var replaced = current.replace(/\./g, ""); console.log("replaced", replaced); //replaced = parseInt(replaced); // $('.angebotAbgebenContainer #angebot').val(replaced); });Esos son los 2 enfoques que no funcionan. Tan pronto como hago un punto, en ambos enfoques, el campo de entrada se borra.
Pero lo que quiero es que si alguien trata de escribir un punto o una coma, no aparece y si alguien copia y pega un número, la coma y el punto también deben desaparecer.
esto funciona para mi
Tenga en cuenta que es tipo de texto
$('#angebot').on("input",function(event) { var current = $(this).val(); console.log("current", current); var replaced = current.replace(/[\D\.,]/g, ""); console.log("replaced", replaced); $(this).val(replaced); }); <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.6.0/jquery.min.js"></script> <input type="text" id="angebot" />Si va a ingresar valores numeric solo en la input , también podría deshabilitar la entrada de todas las teclas excepto numeric , como:
$(document).on("keypress keyup blur", ".numbersOnly", function (event) { $(this).val($(this).val().replace(/[^\d].+/, "")); if ((event.which < 48 || event.which > 57)) { event.preventDefault(); } }); 57 48 representa keycodes , puede encontrar todos los códigos clave aquí .
Puede usar prevenir predeterminado como se muestra a continuación, y al cambiar para pegar
$(function() { $('#angebot').on('keydown', function(e) { if (e.keyCode == 188 || e.keyCode == 110) { // 188 for comma, 110 for point e.preventDefault(); } }).on('change', function() { var self = $(this); self.html( self.html().replace(new RegExp(',', 'g'),'') ); // Remove all commas. self.html( self.html().replace(new RegExp('.', 'g'),'') ); // Remove all points }); })