Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/svg/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 当ajax表单作为FromData提交时,如何删除inputmask?_Javascript_Jquery_Ajax_Jquery Inputmask - Fatal编程技术网

Javascript 当ajax表单作为FromData提交时,如何删除inputmask?

Javascript 当ajax表单作为FromData提交时,如何删除inputmask?,javascript,jquery,ajax,jquery-inputmask,Javascript,Jquery,Ajax,Jquery Inputmask,碰巧我的ajax表单有一个文件上传输入,因此我必须用FormData而不是简单的.serialize()来提交它。然后我发现jquery.inputmask上的自动取消掩码不再有效 以下是一个例子: 提交表单时,.serialize()的结果具有一个删除输入掩码的值。但是FormData()的结果仍然显示掩码 内容配置:表单数据;name=“成本” 一千 在这种情况下,如何删除掩码?首先,要从输入中获取未屏蔽的值,请使用inputmask(“unmaskedvalue”) 一种方法是将输入元素

碰巧我的ajax表单有一个文件上传输入,因此我必须用
FormData
而不是简单的
.serialize()
来提交它。然后我发现jquery.inputmask上的
自动取消掩码
不再有效

以下是一个例子:

提交表单时,
.serialize()
的结果具有一个删除输入掩码的值。但是
FormData()
的结果仍然显示掩码

内容配置:表单数据;name=“成本”

一千


在这种情况下,如何删除掩码?

首先,要从输入中获取未屏蔽的值,请使用inputmask(“unmaskedvalue”)

一种方法是将输入元素重命名为类似“蒙版成本”,然后使用方法

在服务器端,您可以检索具有未屏蔽值的成本变量

FormData看起来像这样

var formData = new FormData($form[0]);
formData.append('cost', $('input[name="masked-cost"]').inputmask('unmaskedvalue'));
------WebKitFormBoundaryMHLOLWal6cTPLuBG内容配置:表单数据;name=“隐藏成本”

一千 ------WebKitFormBoundaryMHLOLWal6cTPLuBG内容配置:表单数据;name=“成本”

一千


这里是更新的演示

刚刚找到了另一种方法

我们可以使用jquery
.val()
来获取不带掩码的值

$.each($('[data-mask="integer"]'), function (idx) {
    var input = $('[data-mask="integer"]')[idx];
    var actualValue = $(input).val();
    $(input).val(actualValue);
});
然后我们可以使用
$form.serialize()
获得ajax的数据


这样,我们就避免了使用
FormData
api。

它很简单。在javascript中,使用字符串的.replace方法和\D的regex,这是一个匹配所有非数字的速记字符类。因此,步骤如下:

获取输入掩码字段的值

 var number = $("#your_field_id").val();
现在使用.replace方法替换为\D的正则表达式

number =  number.replace(/\D/g,'');

请记住,这只是一种技术,以上代码仅适用于数字。根据您的要求使用正则表达式。更多

因此您的回答意味着没有方便的设置来自动删除掩码,不是吗?好吧,我认为没有办法自动删除掩码,尤其是在使用FormData时,因为如果使用$.serialize,inputmask库会很小心。
number =  number.replace(/\D/g,'');