使用文本字段更改表单隐藏字段

时间:2011-09-19 17:10:03

标签: javascript jquery ruby-on-rails ajax

我正在使用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似乎没有做任何事情。

任何帮助都将不胜感激。

1 个答案:

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