¿Cómo puedo hacer para que al ingrear en el campo CUIT de un formulario escriban los numeros y vaya agregando los guiones a medida que escriban?
Por otro lado que no deje escribir mas que 11 dígitos (que entiendo es la cantidad de digitos de cualquier número de CUIT).
jQuery por ejemplo
$("#no").on('keyup', function()
{
var value = $(this).val().split('')
var output = ''
for (var i = 0; i < value.length; i++) {
switch (i) {
case 0: {
output += '(' + value[i];
break;
}
case 2: {
output += value[i] + ') ';
break;
}
case 5: {
output += value[i] + ' ';
break;
}
default: output += value[i]
}
}
if (value.length >= 10)
$('#no_span').html(output)
else
$('#no_span').html('')
});
1 me gusta
es un comienzo, el tema es que este jQuery lo escribe al lado.
Seguiré investigando,
Gracias Wanderlust!
Encontré este
pero tiene un problema, si sigo agregand numeros, borra y empieza de nuevo.
Encontré otro que lo adapté y creo que puede andar:
1 me gusta
Si, fue un ejemplo para que sigas vos.
1 me gusta
Yo lo veo perfecto a esta solucion quiza una posible mejora es:
<input type="number" pattern="[0-9]*" inputmode="numeric">
Para que en mobile te abra el teclado numerico directamente.
Va un pequeño aporte más:
Input:
<input type="number" name="numero" id="numero" maxlength="14" inputmode="numeric"/>
Jquery:
$("#numero").on("input", function() {
let numero = $(this).val();
numero = numero.replace(/-/g, "");
if (numero.length > 2) {
numero = numero.slice(0, 2) + "-" + numero.slice(2);
}
if (numero.length > 11) {
numero = numero.slice(0, 11) + "-" + numero.slice(11);
}
$(this).val(numero);
});
2 Me gusta
Disculpen mi ignorancia, pero ¿donde pongoe el jquery en wordpress?
Lo podrias llamar antes de agregar el script que armo @0xAlm0ck asi:
<script src="https://code.jquery.com/jquery-3.6.3.min.js" integrity="sha256-pvPw+upLPUjgMXY0G+8O0xUf+/Im1MZjXxxgOcBQBXU=" crossorigin="anonymous"></script>
Si entendi bien tu pregunta.
Sorry la demora.
Es posible crear un Js custom, ejemplo: cuit.js y hacer un equeue del archivo. Incluso puede servir para cargarlo solo en la página o template y no en todo el sitio.
Ejemplo con página “contacto”:
if (is_page('contacto'){
// Hacer enqueue
}
En el theme (desconozco la estructura de archivos), se puede crear algo así: /assets/js/cuit.js y en el caso que estés usando la estructura original de wp para hacer el enqueue agregás lo siguiente al functions.php (verificar si ya existe una función de enqueue previa):
function my_enqueue_scripts() {
wp_enqueue_script( 'cuit-js', get_template_directory_uri() . '/assets/js/cuit.js', array(), filemtime( get_template_directory() . '/assets/js/cuit.js' ), true );
}
add_action( 'wp_enqueue_scripts', 'my_enqueue_scripts' );
@mparraud avisame cualquier cosa y lo vemos.
1 me gusta