表单提交后从输入掩码中删除文字?

这个问题已经被问过,但解决方案还不清楚。

我使用乔什布什的MaskedInput插件为jQuery

我想要实现的是:

例如:带有面罩的电话输入

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

等于:(00)9398-8373

我希望它提交:0093988373

——是否可以在提交时删除.mask但保留值?

我想你想使用unmask

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

初始化输入掩码时,将removeMaskOnSubmit设置为true

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

基于插件站点 :

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

如果您使用完成的回调,那么您可以使用:

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

否则,您可以使用:

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

如果您想在提交之前执行此操作,我建议使用上面的代码捕获提交事件,然后提交表单。

编辑: Alex Peattie指出unmask()函数,我必须说这是一个比我更好的解决方案。 我会在这里留下我的答案,但我会选择他的解决方案。

您还可以使用屏蔽输入提取原始值

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

资料来源: https : //github.com/digitalBush/jquery.maskedinput/issues/318


如果您使用带有此类面具的phone输入:

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

您可以使用以下方法提取用户输入:

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

假设您提交的输入不仅仅是一个,您可以使用:

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

其中FormObj是您的表单对象ID,例如#form。