表单提交后从输入掩码中删除文字?
这个问题已经被问过,但解决方案还不清楚。
我使用乔什布什的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。