我在从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/

10-11 01:12