已经问过这个问题,但解决方案尚不清楚。
我使用 Josh Bush 的 MaskedInput jQuery 插件
我想要实现的是:
例如:带有掩码的电话输入
$("#txtPhone").mask("(99)9999-9999");
等于:(00)9398-8373
我希望它提交:0093988373
------ 是否可以在提交时删除 .mask 但保留该值?
已经问过这个问题,但解决方案尚不清楚。
我使用 Josh Bush 的 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());
unmask 不是一个函数。这是我的使用方式。自动取消屏蔽:真
$('#amount').inputmask('999.999.999.999', {
numericInput: true,
autoUnmask: true,
});
如果您正在使用完成的回调,那么您可以使用:
$(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。