我正在使用Jquery和Ruby on Rails(3.1),并且在通过javascript更新隐藏字段时遇到了一些问题。
基本上我有一个文本字段,我正在尝试使用ajax更新两个不同的表单隐藏字段(一个用于Google Checkout,一个用于amazon付款)。
我的Javascript看起来像这样:
$(function() {
$('#payment_amount input').keyup(function() {
var quantity = $('#payment_amount input').val();
$("input[name='amount']").val("USD" + quantity);
$("input[name='item_price_1']").val(quantity);
return false;
});
});
我暂时在我的application.js文件中有这个(尚未在我的.js.coffee中,需要查看咖啡脚本)。
我认为这个javascript是正确的,因为我从输入字段中获取值,它应该使用名称'amount'和'item_price_1'更新输入字段。我想也许我的选择器错了,所以这是我的html:
<input id="payment_amount" type="text" size="30" name="payment[amount]"> #textfield to change form hidden fiels
<form method="POST" action="https://checkout.google.com/api/checkout/v2/checkoutForm/Merchant/.... accept-charset="utf-8">
<input type="hidden" name="item_price_1" value="20"/> #what I want to change
....
</form>
<form action="https://authorize.payments.amazon.com/pba/paypipeline" method="post">
<input type="hidden" name="amount" value="USD 20" > #also change this
</form>
这一切都来自new.html.erb文件。我没有new.js.erb文件,我需要一个吗?
现在,这个javascript似乎没有做任何事情。
任何帮助都将不胜感激。
答案 0 :(得分:2)
更改此行:
$('#payment_amount input').keyup(function() {
var quantity = $('#payment_amount input').val();
对此:
$('#payment_amount').keyup(function() {
var quantity = $(this).val();
您在payment_amount字段中使用了错误的选择器。你可以see it working here。