我正在一个网站上工作,那里有一个带有字段和贡献按钮的捐赠箱。
<div id="donate-bar">
<form name="donate" id="donate">
<span class="donate-text">DONATE</span>
<input type="text" class="amount" name="amount" id="amount" value="$10" size="5">
<input type="submit" id="contribute" formaction="https://website.com/donate" accept-charset="utf-8" formmethod="GET" value="CONTRIBUTE">
</form>
</div>
但是,查询会以https://website.com/donate?amount=%2410
的形式发送到捐赠处理者的网站,并且不会勾选10美元的框。如果我删除$
并再次提交查询,则会发送该值,并在第二页上显示正确的金额。
有一种简单的方法可以使用PHP或Javascript在提交表单时删除$
,以便https://website.com/donate?amount=%2410
更改为https://website.com/donate?amount=10
。
我尝试了几件事,但我尝试过的任何事情都没有。一些代码示例会非常有用,因为我对其中的一些更新。我可以在提交时将其解析为整数吗?任何帮助将不胜感激。谢谢!
答案 0 :(得分:2)
为什么不将美元符号放在输入之外并将值存储为&#34; 10&#34;:
<div id="donate-bar">
<form name="donate" id="donate">
<span class="donate-text">DONATE</span>
$<input type="text" class="amount" name="amount" id="amount" value="10" size="5">
<input type="submit" id="contribute" formaction="https://website.com/donate" accept-charset="utf-8" formmethod="GET" value="CONTRIBUTE"></form></div>
答案 1 :(得分:1)
$_POST['amount'] = str_replace("$", "", $_POST['amount']);
答案 2 :(得分:1)
$('form#donate').on('submit',function() {
var $input = $('input#amount');
$input.val(parseInt($input.val().replace(/\$/,''),10));
});
答案 3 :(得分:1)
有一种简单的方法可以解决这个问题。
首先,我的一个建议是将字段更改为
type="number"
其次,在PHP中,您可以使用以下内容删除美元符号:
$amount = str_replace('$', '', $_REQUEST['amount']);
答案 4 :(得分:0)
您可以在jquery中使用split函数,如下所示
var value =($(&#39;#amount&#39;)。val())。split(&#39; $&#39;); var amount = value [1];
在PHP中
$ value = explode(&#39; $&#39;,$ _ POST [&#39; amount&#39;]); //结果数组元素 没有$符号$ amount = $ value [1];
或者在PHP中
$ amount = preg_replace(&#34; / [^ 0-9] /&#34;,&#34;&#34;,$ _ POST [&#39; amount&#39;]);
//只获取整数部分并省略所有其他部分
同样在PHP中
$ amount = str_replace(&#39; $&#39;,&#39;&#39;,$ _POST [&#39;金额&#39;]);
答案 5 :(得分:0)
希望这有助于最简单的方法是隐藏的领域:
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.min.js"
type="text/javascript"></script>
<script>
$(document).ready(function() {
//number regex - the format $10
var regex = /\$[1-9][0-9]+/;
//Setting validations
$(document).on('blur', '#pretty_amount', function() {
if(!regex.test($(this).val())) {
//Do something probably clear field
alert("Error Invalid number: " + $(this).val());
} else {
var newValue = $(this).val().match(/[1-9][0-9]+/g);
$('#amount').val(newValue);$('#amount').innerHtml(newValue);
}
});
});
</script>
</head>
<body>
<div id="donate-bar">
<form name="donate" id="donate">
<span class="donate-text">DONATE</span>
<input type="text" style="display: none;" name="amount" id="amount">
<input type="text" class="amount" name="pretty_amount" id="pretty_amount" value="$10" size="6">
<input type="submit" id="contribute" formaction="https://website.com/donate" accept-charset="utf-8" formmethod="GET" value="CONTRIBUTE"></form></div>
</body>
</html>
如果我没弄错的话,这就是你想要的。
祝你好运