我正在尝试创建一个PayPal表单,用户可以在其中设置价格和产品数量,但没有成功。
表单按预期方式POST,但结帐页面中的值不会更新。它必须在前端环境中运行,不涉及服务器端代码。
这是表格:
<form id="product-form" action="https://www.paypal.com/cgi-bin/webscr" method="post" target="_top">
<input type="hidden" name="cmd" value="_s-xclick">
<input type="hidden" name="hosted_button_id" value="xyz">
<table>
<tr>
<td><input type="hidden" name="on0" value="Amount">Valor</td>
</tr>
<tr>
<td><input id="price" type="text" name="os0" maxlength="200" placeholder="R$" value="1.00"></td>
</tr>
<tr>
<td><input type="hidden" name="on1" value="Quantidade">Quantity</td>
</tr>
<tr>
<td><input id="quantity-input" type="text" name="os1" maxlength="200"></td>
</tr>
</table>
<input type="hidden" id="amount" name="amount" value="1.00">
<input type="hidden" name="quantity" value="1">
<img src="https://www.paypalobjects.com/pt_BR/BR/i/btn/btn_buynowCC_LG.gif" border="0" alt="PayPal - A maneira fácil e segura de enviar pagamentos online!" onclick="validator()" />
<img alt="" border="0" src="https://www.paypalobjects.com/pt_BR/i/scr/pixel.gif" width="1" height="1">
</form>
这是我用来验证提交表单的JS。
var priceInput = $('#price'),
amountInput = $('#amount'),
quantityInput = $('#quantity-input'),
quantity = $('#quantity'),
validator = function validator () {
var value = priceInput.val(),
quant = quantityInput.val(),
val = value.replace('R$ ', ''),
amount = parseInt( val );
if ( !amount ) {
window.alert('Min value is 1.00');
priceInput.focus();
return;
}
amountInput.val(val);
quantity.val(quant);
$('#product-form').submit();
};
$(function() {
priceInput.maskMoney({ 'prefix': 'R$ ' });
});
该值仍然是先前为产品设置的默认值。
有没有办法实现这个目标?