jQuery динамически создает входную сумму и вычитает при выборе опции

0

Я работаю с jquery и нуждаюсь в помощи для вычисления значений ввода зависит от опции выбора, вставленной динамически. я хочу, если значение select является дебетовым, оно вычитает из выбранного значения кредита и разницы в id diff, поскольку я вставлял больше всех значений, рассчитываемых по дебету и кредиту.

<table class="vtable">
    <tr>
        <td>Type</td>
        <td>Amount</td>
    </tr>
    <tr>
        <td>
            <select name="type" id="type">
            <option>-type -</option>
            <option value="debit">debit</option>
            <option value="credit">credit</option>
            </select>
        </td>
        <td><input type="text" id="amount"></td>
    </tr>
</table>

Демо-версия моей скрипки ниже

демонстрация

благодаря

  • 0
    @David Давид Я думаю, что OP опубликовал ссылку на демонстрационную скрипку для большей ясности.
Теги:

4 ответа

1
Лучший ответ

DEMO

Попробуй это

$(document).on('change', 'select', function () {
        var value = $(this).val();
        var input = $(this).parents('td').next('td').find('input:text');
        if (value == 'debit') {
            total -= parseInt(input.val());
        } else if (value == 'credit') {
            total += parseInt(input.val());
        }
        $('#diff').html('Differance:' + total);
    });

Надеюсь, это поможет, спасибо

  • 0
    можешь обновить скрипку пожалуйста
  • 0
    Демоверсия @Fillz обновлена, пожалуйста, посмотрите
Показать ещё 2 комментария
0

одна проблема исправлена в more кнопок обработчиков щелчка. см. приведенные ниже изменения:

$("#more").click(function() {
  $(".vtable tr:last").clone().find("input, select").each(function() {
    $(this).attr({'id': function(_, id) { return id + 1 }});
  }).end().appendTo(".vtable");
});

чтобы обрабатывать события для динамически добавленного текста select и input, вы можете добиться этого следующим образом.

Примечание: .on() используется с вашей таблицей, так как вы динамически добавляете строки с помощью выбора и ввода текста.

для select:

$('.vtable').on('change', "select", function (e) {
    var valueSelected = this.value;
    alert(valueSelected);

});

для input текста

$('.vtable').on('keyup', "input", function (e) {
    var valueEntered = this.value;
    alert(valueEntered );
});
0

как насчет чего-то подобного?

$('select[name="type"]').change(function()
{
 if($(this).val() === 'credit')
 {
    $("#amount").val() += $('input[type="text"]').val()

 }
 else if($(this).val() === 'debit')
 {
    $("#amount").val() -= $('input[type="text"]').val()
 }
})

Я использую функцию change(), чтобы вызвать изменение. Я не знаю, это то, что вы имели в виду, но я надеюсь, что это помогло.

  • 0
    это расчет для одного, так как я добавляю больше строк, не рассчитываю, пожалуйста, обновите скрипку
0
$('select#type').on('change', function() {
    if($(this).val() === "debit"){
        //Get the difference between 2 variables and store result in diff
        $("#diff").val(Math.abs(a - b)) 
    }else if($(this).val() === "credit"){
        //perform addition and store value in sum object
        $("#sum").val(x+y)
    } 
});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню