我正在尝试创建一个简单的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>
答案 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();
});
});