He creado una expresión regular para que el usuario solo permita que se ingresen estos caracteres. Si el usuario escribe, por ejemplo, '@', no debería permitirlo, pero en mi código, si el usuario presiona @ y luego presiona la pestaña, la '@' aún permanece allí.
function onlyAlphabet(inputVal) { var patt = /^[a-zA-Z.123456789]+$/; if (patt.test(inputVal)) { document.getElementById('facebook').value = inputVal; } else { var txt = inputVal.slice(0, -1); document.getElementById('facebook').value = txt; } } <div class="form-group mb-3"> <label for="exampleFormControlTextarea1" class="fw-bold my-1 fs-7" id="text-color1">Facebook</label> <input type="text" placeholder="Facebook" onkeypress="onlyAlphabet(value)" id="facebook" class="form-control" name="facebook" value="<?php echo $row['facebook'] ?>" style="padding-left: 0 !important; border: none; border-bottom: 1px solid #E8E8E8; border-radius: 0 !important;"> </div>Debe agregar onchange="onlyAlphabet(value)" y onblur="onlyAlphabet(value)" para asegurarse de que se llamará en cualquier circunstancia
podrías hacerlo usando cualquiera de estas 3 formas:
onChange="onlyAlphabet(value)" - cuando cambia el valor de la entradaonKeyUp="onlyAlphabet(value)" - o onKeyDown, cuando se suelta/presiona una teclaonBlur="onlyAlphabet(value)" - cuando el enfoque deja la entrada...Debe configurar oninput en lugar de onkeypress