22

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

我使用 Josh Bush 的 MaskedInput jQuery 插件

我想要实现的是:

例如:带有掩码的电话输入

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

等于:(00)9398-8373

我希望它提交:0093988373

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

4

7 回答 7

32

我想你想用unmask

$("#myForm").submit(function() {
  $("#txtPhone").unmask();
});
于 2011-10-21T20:15:04.597 回答
15

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

    $("#txtPhone").inputmask({removeMaskOnSubmit: true});
于 2015-11-13T07:18:44.343 回答
7

基于插件站点

$("#txtPhone").val($("#txtPhone").mask()); 
于 2013-03-15T20:16:31.413 回答
5

unmask 不是一个函数。这是我的使用方式。自动取消屏蔽:真

    $('#amount').inputmask('999.999.999.999', {
        numericInput: true,
        autoUnmask: true,
    });
于 2019-02-04T21:00:56.283 回答
2

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

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

否则,您可以使用:

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

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

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

于 2011-10-21T20:13:28.450 回答
0

您还可以使用以下方法提取屏蔽输入上的原始值

$("#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
于 2016-04-19T13:46:16.617 回答
0

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

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

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

于 2017-04-26T15:25:48.190 回答