从输入柱中删除美元符号和小数点


Remove Dollar Sign and Decimal Point from Input Post

我有一个php表单,用于处理付款,我使用js在输入字段中添加一个美元符号和小数点。我似乎不知道如何在提交时删除美元符号和小数点。

$amount = trim($_POST['amount']);
<div class="input-block">
<label for="amount" class="label_comment"><strong>Donation Amount</strong>*</label>
<input type="text" name="amount" value="<?php echo $_POST['amount']; ?>" placeholder="$" data-stripe="amount" id="amount" required="">
</div>
<script type="text/javascript" src="/js/jquery.price_format.2.0.js"></script>
<script type="text/javascript">
$(document).ready(function()
{
$('#amount').priceFormat({
prefix: '$',
centsSeparator: '.',
thousandsSeparator: ','
});
});
</script>

您可以使用.unmask()函数获取原始值并设置隐藏输入,也可以在onSubmit事件中重置格式。

<form id="yourForm">
  <div class="input-block">
  <label for="amount" class="label_comment"><strong>Donation Amount</strong>*</label>
  <input type="text" name="amount" value="<?php echo $_POST['amount']; ?>" placeholder="$" data-stripe="amount" id="amount" required="">
  <input type="hidden" id="rawAmountField" name="rawAmount" value="" />
</div>
</form>

两个更改:一个隐藏字段和-tag的#id参数。然后你可以像一样添加

<script type="text/javascript">
$(document).ready(function() {
  $('#yourForm').submit(function( event ) {
    /* Set the hidden field */
    $('#rawAmountField').value($('#amount).unmask());
    /* OR reset format like */
    $('#amount').priceFormat({
      prefix: '',
      centsSeparator: '.',
      thousandsSeparator: ''
    });
  });
});
</script>

我认为处理此问题的最佳方法是使用filter_put()函数。它的工作方式如下:

$filtered_amount = filter_input(INPUT_POST, 'amount', FILTER_SANITIZE_NUMBER_INT);

这将从$_POST['amount']中删除所有不是数字的内容。当然,它需要使用PHP5.2或更高版本。

function remove(number) { 
    var tag = number.charAt(0);
    if(tag=='$')
    {
        var res = number.slice(1);
    }
    if(tag!='$')
    {
        var res = number.slice(0);
    }
    document.formname.roundedfield.value = '$'+ parseInt(res); 
}