我使用jQuery Input Mask Plugin来掩盖表单中的输入,我需要向服务器提交一个没有掩码的值。我的方法是使用类“.masked-inputs-form”标记表单,然后绑定到其“submit”事件,替换相关输入的值。经过繁琐的调试后,我发现发布的值是屏幕上可见的值,而不是我的函数中设置的值。来自社区的任何想法?
我的代码的JavaScript等价如下:
(function() {
$(function() {
return $(".masked-inputs-form").on('submit', function(e) {
var i, input, inputs, len;
e.preventDefault();
inputs = $('.decimal-input-mask, .signed-decimal-input-mask, .integer-input-mask, .signed-integer-input-mask');
for (i = 0, len = inputs.length; i < len; i++) {
input = inputs[i];
$(input).val(input.value.replace(/,/g, ''));
}
return this.submit();
});
});
}).call(this);
<form accept-charset="UTF-8" action="#" class="masked-inputs-form form-inline" id="my_form" method="post" role="form">
<input id="hidden_input" type="hidden" value="1">
<input class="form-control decimal-input-mask" id="positive_integer_input" size="10" type="text" style="text-align: right;">
<input class="form-control decimal-input-mask" id="percent_input" size="10" type="text" style="text-align: right;">
<input class="form-control signed-decimal-input-mask" id="plus_minus_input" size="15" type="text" style="text-align: right;">
<input class="btn btn-primary" name="commit" type="submit" value="add">
</form>
更新:我通过使用插件“removeMaskOnSubmit”中的一个选项找到了一种解决方法,该选项最初不起作用,因为我有一个旧版本的插件。