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?
Je pense que vous voulez utiliser unmask
$("#myForm").submit(function() {
$("#txtPhone").unmask();
});
Définissez removeMaskOnSubmit sur true lorsque vous initialisez le masque de saisie
$("#txtPhone").inputmask({removeMaskOnSubmit: true});
Basé sur Plugin Site :
$("#txtPhone").val($("#txtPhone").mask());
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,
});
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.
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.
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