碰巧我的ajax表单有一个文件上传输入,因此我必须使用FormData
而不是简单的.serialize()
来提交它。然后我发现 jquery.inputmask 上的 autoUnmask
不再有效。
示例如下: http://jsfiddle.net/btqtnumL/1/
提交表单后,.serialize()
的结果具有删除了输入掩码的值。但 FormData()
的结果仍然显示掩码。
Content-Disposition: form-data; name="cost"
1,000
这种情况下我们该如何摘掉面具呢?
最佳答案
首先,要从输入中获取未屏蔽的值,请使用 inputmask('unmaskedvalue') (here is a reference) 。
一种方法是将输入元素重命名为 masked-cost 之类的名称,然后使用 .append()方法。
<input name="masked-cost" .... />
在 javascript 中你可以做这样的事情
var formData = new FormData($form[0]);
formData.append('cost', $('input[name="masked-cost"]').inputmask('unmaskedvalue'));
在服务器端,您可以检索具有未屏蔽值的成本变量。
FormData 看起来像这样
------WebKitFormBoundaryMHLOLWal6cTPLuBG Content-Disposition: form-data; name="masked-cost"
1,000 ------WebKitFormBoundaryMHLOLWal6cTPLuBG Content-Disposition: form-data; name="cost"
1000
关于javascript - 当ajax表单作为FromData提交时如何删除输入掩码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31141219/