我在从Jquery-maskMoney保存格式时遇到了一些问题,
我已经在我的Web表单中成功实现了Jquery-maskMoney,这是我的代码:
Javascrypt:
<script>
$(function() {
$("#currency").maskMoney({ formatOnBlur: true, reverse: true, prefix: 'Rp ', selectAllOnFocus: true, precision: 0 });
})
</script>
观看次数:
<label class="control-label" for="nama_hukuman">Nilai Proyek</label>
<div class="controls">
<input type="text" class="span" name="nilai" value="<?php echo $nilai; ?>" style="width:300px;" placeholder="Harga Pengadaan.." id="currency">
</div>
我的问题是,在保存数据后,数据将以Jquery-maskMoney格式(使用Currency和逗号)保存。
如何不使用格式保存数据?
例如
网站表单->保存在数据库SQL中
Rp 1,000,000-> 1000000
谢谢你的帮助
最佳答案
答案更新
由于某些奇怪的原因,.maskMoney('unmasked')不起作用。因此,解决方法可以基于输入事件。在以下代码段中,出于测试目的,我将隐藏字段更改为文本字段:
$("#currency").maskMoney({
formatOnBlur: true,
reverse: true,
prefix: 'Rp ',
selectAllOnFocus: true,
precision: 0,
decimal: '.',
thousands: ','
}).on('input', function(e) {
$('#' + this.id + 'Hidden').val(this.value.replace(/Rp\s|[.,]/g, ''));
}).trigger('input');
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/plentz/jquery-maskmoney/master/dist/jquery.maskMoney.min.js"></script>
<form>
<label class="control-label" for="nama_hukuman">Nilai Proyek</label>
<div class="controls">
<input type="text" id="currencyHidden">
<input type="text" class="span" name="nilai" value="Rp 1,000,000" style="width:300px;"
placeholder="Harga Pengadaan.." id="currency">
</div>
<input type="submit" value="submit">
</form>
老答案
您需要使用:
.maskMoney('unmasked'):返回浮点值(例如:'R $ 1.234,56'=> 1234.56)。 PS:如果只有一个输入字段,则应使用.maskMoney('unmasked')[0],因为它将始终返回一个数组。
.maskMoney('destroy'):从元素中删除maskMoney
我可以提出两种策略:
首要策略
在提交表单时,您可以获取未屏蔽的值,并使用以下设置字段:
$('form').on('submit', function(e) {
var v = $("#currency").maskMoney('destroy').val().replace(/Rp\s|[.,]/g, '');
$("#currency").val(v);
})
$("#currency").maskMoney({
formatOnBlur: true,
reverse: true,
prefix: 'Rp ',
selectAllOnFocus: true,
precision: 0
});
$('form').on('submit', function(e) {
var v = $("#currency").maskMoney('destroy').val()
.replace(/Rp\s|[.,]/g, '');
$("#currency").val(v);
//
// The following line is only for test....
//
e.preventDefault();
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/plentz/jquery-maskmoney/master/dist/jquery.maskMoney.min.js"></script>
<form>
<label class="control-label" for="nama_hukuman">Nilai Proyek</label>
<div class="controls">
<input type="hidden" id="currencyHidden">
<input type="text" class="span" name="nilai" value="Rp 1,000,000" style="width:300px;"
placeholder="Harga Pengadaan.." id="currency">
</div>
<input type="submit" value="submit">
</form>
第二种策略
您可以使用输入隐藏字段,因此对于每个输入事件,您可以使用未屏蔽的值填充此隐藏字段:
.on('input', function(e) {
var v = $(this).maskMoney('unmasked')[0];
$('#' + this.id + 'Hidden').val(v);
});
$("#currency").maskMoney({
formatOnBlur: true,
reverse: true,
prefix: 'Rp ',
selectAllOnFocus: true,
precision: 0
}).on('input', function(e) {
var v = $(this).maskMoney('unmasked')[0];
$('#' + this.id + 'Hidden').val(v);
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://rawgit.com/plentz/jquery-maskmoney/master/dist/jquery.maskMoney.min.js"></script>
<form>
<label class="control-label" for="nama_hukuman">Nilai Proyek</label>
<div class="controls">
<input type="hidden" id="currencyHidden">
<input type="text" class="span" name="nilai" value="Rp 1,000,000" style="width:300px;"
placeholder="Harga Pengadaan.." id="currency">
</div>
<input type="submit" value="submit">
</form>
关于javascript - 如何在Jquery-maskMoney中保存不带格式的查询,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/46013790/