单选按钮不会在数字字段存在的情况下提交

时间:2019-06-18 21:59:48

标签: html forms checkbox input paypal

我正在尝试创建一个简单的Web表单,该表单包含几个复选框按钮和一个数字字段。通过按钮提交。由于某些原因,当出现数字输入框时,表格将提交0.00。如果我在数字字段中输入内容,它将通过我输入的内容,但是如果我选择数字之一并将输入字段保留为空白,则会提交0.00。我似乎不知道为什么。

如果我删除了代码,一切正常。

<form action="https://www.paypal.com/cgi-bin/webscr" method="post" target="paypal">
      <div class="donation_container">
        <input name="cmd" type="hidden" value="_donations"> 
        <input name="business" type="hidden" value="info@***.org"> 
        <input name="item_name" type="hidden" value="Donation">
        <input name="no_shipping" type="hidden" value="1"> 
        <input name="no_note" type="hidden" value="1"> 
        <input name="currency_code" type="hidden" value="USD"> 
        <input name="tax" type="hidden" value="0.00"> 
        <input name="lc" type="hidden" value="US"> 
        <input name="bn" type="hidden" value="PP-DonationsBF"> 
        <div class="donate_call_to_action">
          <div class="donate_call_to_action_text">Become ***
          </div>
        </div>
        <div class="donation_buttons">
          <label class="donation_label"> 
            <input name="amount" type="checkbox" value="1000.00">
            <div>$1000</div>
          </label>
          <label class="donation_label">
            <input name="amount" type="checkbox" value="500.00">
            <div>$500</div>
          </label>
          <label class="donation_label">
            <input name="amount" type="checkbox" value="100.00">
            <div>$100</div>
          </label>
          <label class="donation_label">
            <input name="amount" type="checkbox" value="50.00">
            <div>$50</div>
          </label>
          <div class="custom_donation">
            <i>$</i>
            <input name="amount" type="number">
          </div>
        </div>
      </div>
      <div class="donation_button">
        <button type="submit" formmethod="post" class="btn btn-primary" alt="PayPal - The safer, easier way to pay online!" name="submit">Donate</button> 
        <img src="https://www.paypal.com/en_US/i/scr/pixel.gif" alt="" width="1" height="1" border="0">
      </div>
    </form>

更新:

事实证明,我只能一次提交具有name = amount属性的值。输入类型=数字字段和复选框会导致捐赠按钮提交多个“金额”。即使输入框为空,它也会提交一个空值,例如,amount = 50.00&amount =解决方案是使用少许jQuery关闭输入字段的name属性。如果输入字段为0或值的长度为0,则脚本将删除name属性。

<script>
      (function ($) {
        $(document).ready(function() {
          	$( "form" ).submit(function( event ) {
    			    alert($(this).serialize());
    			    event.preventDefault();
  			    });
        });
        $("#other_amount").removeAttr("name"); //on load, remove the name attribute. Default action.
        $( "#other_amount" ).blur(function() {
        	if(($(this).val().length == "0") || ($(this).val() == "0")){
          		$(this).removeAttr("name");
            } else {
            	$(this).attr("name", "amount");
            }
        });
      })(jQuery);
</script>

1 个答案:

答案 0 :(得分:0)

您的号码字段与复选​​框具有相同的function createTable(size){ for (var j=1; j<size+1; j++){ $('table').append("<tr>"); for (var i=1; i<size+1; i++){ $('table').append('<td><input class="add"/></td>'); } $('table').append("</tr>"); } } 名称。将数字字段的名称更改为唯一的名称。

amount


编辑

我添加了一些jQuery,因此您可以看到它正在提交复选框和数字字段的值。您提供的代码中肯定没有其他内容。

<input name="othername" type="number">
$(document).ready(function() {
   $( "form" ).submit(function( event ) {
    alert($(this).serialize());
    event.preventDefault();
  });
});