Django - Получить «общее» между двумя элементами в HTML в режиме реального времени, используя скрипт - PullRequest
0 голосов
/ 11 декабря 2018

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

Сначала я передаю значение из элемента, используя djangoформы через вид.В этом примере шаблон получает значение «900», потому что я использую значение по умолчанию {{form.price}} в HTML.

<input type="text" name="price" value="900" readonly="readonly" id="id_price">

Внутри того же HTML у меня есть поле для ручного ввода количества:

<input type="text" name="quantity" id="quantity">

И последний ввод, чтобы показать умножение между этими двумя

<input type="text" name="total" id="total">

В качестве сценария я использовал это (увидел ответ в вопросе, но я не смог воссоздать результат в моем «общем» вводе)

SCRIPT

<script>
$(document).ready(function () {
    $('').keyup(function () {
        var multiplyAndShow = function () {
            var val1 = parseFloat($('#id_price').val())
            var val2 = parseFloat($('#quantity').val())
            val3 = val1 * val2 || "Some Text"
            $("#total").html(val3)
        }
        $("#id_price").keyup(function () { multiplyAndShow(); });
        $("#quantity").keyup(function () { multiplyAndShow(); });
    });
});
</script>

Сценарийне используется, потому что когда я устанавливаю количество, оно ничего не делает в реальном времени.Значение цены доступно только для чтения, поэтому я не знаю, в этом ли проблема.

Я новичок в javascript, поэтому любая помощь будет оценена

1 Ответ

0 голосов
/ 11 декабря 2018

Вы должны установить значение поля total, а не html.Измените следующую строку

$("#total").html(val3)

на

$("#total").val(val3)

Вы также должны изменить $('') на $(document).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...