我有一个用于处理付款的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>
答案 0 :(得分:2)
您可以使用.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>
答案 1 :(得分:0)
我认为处理此问题的最佳方法是使用filter_input()函数。它会像:
$filtered_amount = filter_input(INPUT_POST, 'amount', FILTER_SANITIZE_NUMBER_INT);
这会剥离$_POST['amount']
中不是数字的所有内容。当然它需要使用PHP5.2或更高版本。
答案 2 :(得分:0)
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);
}