从提交查询中删除美元符号

时间:2014-06-30 16:24:42

标签: javascript php jquery forms

我正在一个网站上工作,那里有一个带有字段和贡献按钮的捐赠箱。

<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

我尝试了几件事,但我尝试过的任何事情都没有。一些代码示例会非常有用,因为我对其中的一些更新。我可以在提交时将其解析为整数吗?任何帮助将不胜感激。谢谢!

6 个答案:

答案 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>

如果我没弄错的话,这就是你想要的。

祝你好运