使用jquery将单个文本框值传递给ajax调用

时间:2015-08-01 05:53:53

标签: javascript jquery html ajax

我正在使用定价表。它与Amount Textbox有多个计划。每个计划都提交Button。因此用户可以更改文本框值。通过单击提交函数,特定定价表值应传递给ajax函数。

Html代码:

<div class="pricing_table">
            <h3 class="title">RD195</h3>
                <span class="price">Rs.195</span>
                   <ul class="features">
                        <li>10 items</li>
                        <li>Unlimited</li>
                         <li><input type="text" class="discountAmount" value="176" style="width:75px;" /></li>
                        <li>7 Days</li>
                  </ul>
                   <a href="#" class="btn btn-default" onclick="javascript:Plans.Subscribe('RD195','RDPurchase','195');return false;">Subscribe</a>
                  <%--<a href="#" class="btn btn-default" onclick="return vas_confirmcandi('RD195','RDPurchase','195')">Subscribe</a>--%>
             </div>
          </div>

         <div class="pricing_table">

            <h3 class="title">RD545</h3>
                <span class="price">Rs.545</span>
                   <ul class="features">
                        <li>50 items </li>
                        <li>Unlimited</li>
                          <li><input type="text" class="discountAmount" value="491" style="width:75px;" /></li>
                        <li>30 Days</li>
                  </ul>
                   <a href="#" class="btn btn-default" onclick="javascript:Plans.Subscribe('RD545','RDPurchase','545');return false;">Subscribe</a>
                  <%--<a href="#" class="btn btn-default" onclick="return vas_confirmcand('RD545','RDPurchase','545')">Subscribe</a>--%>
             </div>

我想取折扣金额的值来传递ajax函数。但是当我点击 545 的第二个表格时,提交功能总是取第一个值 176

我的Ajax代码:

Plans.Subscribe = function (planName, Description, amount){
    var data = $('input[class=discountAmount]').val();
    $("#wait").show();
    if (planName != undefined) {
        $.ajax({
            type: "POST",
            url: "/plans/getdetail",
            data: { 'Plan': plan, 'Type': Description, 'Amount': amount, 'DiscountAmount': data },
            dataType: "json",
            success: function (response) {
                if (response.Success) {
                    $("#wait").hide();
                } else {
                   $("#wait").hide();
                }
            },
            error: function (xhr, status, error) {
                $("#wait").hide();
            }
        });
    }
};

1 个答案:

答案 0 :(得分:1)

通常写为$('input[class=discountAmount]').val()

$('input.discountAmount').val()或更多内容总是会返回与该选择器匹配的第一个输入的值。您需要指定所需的WHICH输入,而不是指定类.discountAmount的所有输入。

执行此操作的最简单方法是为每个输入分配一个ID,其中包含您已传递给函数的某些值。例如planName。那你就可以做$('#' + planName).val()

您的输入将如下所示:

<input type="text" id="RD195" class="discountAmount" value="176" style="width:75px;" />