如何从jQuery中的文本框中获取值

时间:2019-08-29 11:06:46

标签: javascript jquery html frontend

此代码不是我的代码,但我想对其进行编辑以使其与我的需求兼容,所以我有2个数字框,我想在输入数字时显示小计和总数,但是代码只能得到第一个数字框的第一个值(成人),并在第二个数字框和总计的小计中显示$ Nan。 图片1: https://i.ibb.co/p3qFdNy/stackover.png)。 但是当我定义var qty = qty1 + qty2 它向我显示了$ Nan的所有内容。 图片2: https://i.imgur.com/y2ytA75.png

<input type="number" name="adult_count" id="adults"  required>
<input type="number" name="senior_count" id="senior"  required>
update_amounts();
        $('input').change(update_amounts);

        function update_amounts() {
            var sum = 0.0;
            $('#tickets > tbody  > tr').each(function () {
                var qty1 = $(this).find('#adults').val();
                var qty2 = $(this).find('#senior').val();
                var price = $(this).find('.price').text().replace(/[^\d.]/, '');
var qty = qty1 + qty 2;
                var amount = (qty * price);
                sum += amount;
                $(this).find('.subtotal').text('{{ \App\Helpers\Themes::getSymbolForCurrency() }}' + amount);
            });
            $('#total').val('{{ \App\Helpers\Themes::getSymbolForCurrency() }}' + sum);
        };

3 个答案:

答案 0 :(得分:0)

您必须将值解析为整数

var qty1 = parseInt($(this).find('#adults').val());
var qty2 = parseInt($(this).find('#senior').val());

答案 1 :(得分:0)

是的,您需要解析,但您需要声明文本框字段的ID,而不必仅找到它们

var qty1 = parseInt($('#adults')。val());

var qty2 = parseInt($('#senior')。val());

,您还需要声明价格字段和总计的ID属性 然后进行计算,您只需要将计算的值放入总计字段 像$('#Total')。val(calculatedvalue);

答案 2 :(得分:0)

您需要将值解析为整数并处理非数字情况。在我的示例中,如果无法解析,则使用0

  var qty1 = parseInt($(this).find('#adults').val()) || 0;
  var qty2 = parseInt($(this).find('#senior').val()) || 0;

这里有一个示例,用您的代码(简化)在实践中显示:

https://jsfiddle.net/om5bxrck/