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

时间:2011-10-21 20:00:21

标签: jquery plugins mask maskedinput

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

我正在使用Josh Bush的jQuery的MaskedInput插件

我想要实现的是:

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

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

EQUALS:(00)9398-8373

我希望它提交:0093988373

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

7 个答案:

答案 0 :(得分:23)

我想你想使用unmask

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

答案 1 :(得分:10)

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

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

答案 2 :(得分:7)

基于Plugin Site

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

答案 3 :(得分:1)

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

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

否则,您可以使用:

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

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

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

答案 4 :(得分:1)

unmask不是功能。这是我的使用方式。 autoUnmask:true

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

答案 5 :(得分:0)

您还可以使用

在蒙板输入上提取原始值
B || A

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


示例
如果您使用带有此类掩码的$("#YourSelector").data( $.mask.dataName )(); 输入:

phone

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

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

答案 6 :(得分:0)

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

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

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