data - jquery prop



jquery-valide les caractères en appuyant sur les touches? (5)

Eh bien, la réponse de Patrick supprime le caractère s'il ne va pas, afin d' empêcher que le caractère soit inséré dans le champ.

$("#field").keypress(function(e) {
    // Check if the value of the input is valid
    if (!valid)
        e.preventDefault();
});

De cette façon, la lettre ne viendra pas à textarea

J'ai un champ de texte de formulaire que je ne veux autoriser que des chiffres et des lettres. (C.-à-d. Pas de # $ !, etc ...) essaie d'utiliser un caractère autre que des chiffres et des lettres? J'ai essayé de trouver un plugin, mais je n'ai pas vraiment trouvé quoi que ce soit qui le fasse ...


Answer #1

J'ai trouvé que combiner la validation sur la pression de touche et la saisie par clavier donne les meilleurs résultats. Key up est indispensable si vous souhaitez gérer le texte copié collé. C'est également un piège en cas de problèmes entre navigateurs qui autorisent des valeurs non numériques dans votre zone de texte.

    $("#ZipCode").keypress(function (event) {

        var key = event.which || event.keyCode; //use event.which if it's truthy, and default to keyCode otherwise

        // Allow: backspace, delete, tab, and enter
        var controlKeys = [8, 9, 13];
        //for mozilla these are arrow keys
        if ($.browser.mozilla) controlKeys = controlKeys.concat([37, 38, 39, 40]);

        // Ctrl+ anything or one of the conttrolKeys is valid
        var isControlKey = event.ctrlKey || controlKeys.join(",").match(new RegExp(key));

        if (isControlKey) {return;}

        // stop current key press if it's not a number
        if (!(48 <= key && key <= 57)) {
            event.preventDefault();
            return;
        }
    });

$('#ZipCode').keyup(function () {
    //to allow decimals,use/[^0-9\.]/g 
    var regex = new RegExp(/[^0-9]/g);
    var containsNonNumeric = this.value.match(regex);
    if (containsNonNumeric)
        this.value = this.value.replace(regex, '');
});

Answer #2

Vous pouvez essayer cette extension:

jQuery.fn.ForceAlphaNumericOnly =
function()
{
    return this.each(function()
    {
        $(this).keydown(function(e)
        {
            var key = e.charCode || e.keyCode || 0;
            // allow backspace, tab, delete, arrows, letters, numbers and keypad numbers ONLY
            return (
                key == 8 || 
                key == 9 ||
                key == 46 ||
                (key >= 37 && key <= 40) ||
                (key >= 48 && key <= 57) ||
                (key >= 65 && key <= 90) ||
                (key >= 96 && key <= 105));
        })
    })
};

Useage:

$("#yourInput").ForceAlphaNumericOnly();

Answer #3
$('#yourfield').keydown(function(e) {
    // Check e.keyCode and return false if you want to block the entered character.
});

Answer #4
$(document).ready(function() {
 $('.ipFilter').keydown((e) => {
    if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190]) !== -1 ||
        (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true) || 
          e.keyCode === 67 && (e.ctrlKey === true || e.metaKey === true) ||
          e.keyCode === 86 && (e.ctrlKey === true || e.metaKey === true) ||
          e.keyCode === 82 && (e.ctrlKey === true || e.metaKey === true)) || 
        (e.keyCode >= 35 && e.keyCode <= 40 )) {
             return;
    }
    if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) {
        e.preventDefault();
    }
  });
});




keypress