web-dev-qa-db-fra.com

Supprimer les littéraux du masque de saisie après la soumission du formulaire?

cette question a déjà été posée mais les solutions ne sont pas claires.

J'utilise le plugin MaskedInput de Josh Bush pour jQuery

Ce que j'essaie d'atteindre est:

E.g: une entrée téléphonique avec le masque

    $("#txtPhone").mask("(99)9999-9999");

EQUALS: (00) 9398-8373

je veux le soumettre: 0093988373

------ Est-il possible de supprimer le .mask sur submit tout en conservant la valeur?

14
Wednesday Man

Je pense que vous voulez utiliser unmask

$("#myForm").submit(function() {
  $("#txtPhone").unmask();
});
22
Alex Peattie

Définissez removeMaskOnSubmit sur true lorsque vous initialisez le masque de saisie

    $("#txtPhone").inputmask({removeMaskOnSubmit: true});
10
Shameem Ahmed

Basé sur Plugin Site :

$("#txtPhone").val($("#txtPhone").mask()); 
7
dperez

démasquer n'est pas une fonction. Ceci est ma façon d'utiliser. autoUnmask: true

    $('#amount').inputmask('999.999.999.999', {
        numericInput: true,
        autoUnmask: true,
    });
1
Umut Yerebakmaz

Si vous utilisez le rappel terminé, vous pouvez simplement utiliser:

$(element).mask("(99)9999-9999", {
  completed : function () {
    var numbers = this.val().replace(/()-/g,'');
  }
}

Sinon, vous pouvez utiliser:

$(element).val().replace(/()-/g,'');

Si vous souhaitez le faire avant de le soumettre, je suggère de capturer l'événement submit, en utilisant le code ci-dessus, puis de soumettre le formulaire.

EDIT: Alex Peattie a souligné la fonction unmask(), qui, je dois le dire, est une bien meilleure solution que la mienne. Je vais laisser ma réponse ici, mais j'irais avec sa solution.

1
Ivan

En supposant que plus d’une entrée soit soumise, vous pouvez utiliser:

// unmask all inputs, before savinf;
$(FormObj+" input[type=text]").each(function() {
    $(this).unmask();
});

où FormObj est votre identifiant d'objet de formulaire, tel que #form.

0
Paulo Henrique

Vous pouvez également extraire la valeur brute d'une entrée masquée à l'aide de

$("#YourSelector").data( $.mask.dataName )();

Source: https://github.com/digitalBush/jquery.maskedinput/issues/318


Exemple
Si vous utilisez une entrée phone avec un tel masque:

$(".phone").mask("99 99 99 99 99")

vous pouvez extraire la saisie de l'utilisateur à l'aide de:

$(".phone").data($.mask.dataName)() 
// will produce "0102030405" while the masks displays 01 02 03 04 05
0
AlexB