【问题标题】:jQuery on Crispy Forms input fields not workingCrispy Forms输入字段上的jQuery不起作用
【发布时间】:2018-05-15 02:26:17
【问题描述】:

<div id="div_id_code" class="form-group"> <label for="id_code" class="control-label col-lg-2 requiredField">
                Code<span class="asteriskField">*</span> </label> <div class="controls "> <input type="text" name="code" maxlength="50" class="textinput textInput form-control" required id="id_code" /> </div> </div> <div id="div_id_description" class="form-group"> <label for="id_description" class="control-label col-lg-2 requiredField">
                Description<span class="asteriskField">*</span> </label> <div class="controls "> <input type="text" name="description" maxlength="100" class="textinput textInput form-control" required id="id_description" /> </div> </div> <div id="div_id_qty" class="form-group"> <label for="id_qty" class="control-label col-lg-2 requiredField">
                Qty<span class="asteriskField">*</span> </label> <div class="controls "> <input type="number" name="qty" value="0" css-id="qty_id" class="numberinput form-control" required id="id_qty" /> </div> </div> <div id="div_id_price" class="form-group"> <label for="id_price" class="control-label col-lg-2 requiredField">
                Price<span class="asteriskField">*</span> </label> <div class="controls "> <input type="number" name="price" value="0" step="0.01" css-id="price_id" class="numberinput form-control" required id="id_price" /> </div> </div> <div id="div_id_total" class="form-group"> <label for="id_total" class="control-label col-lg-2 requiredField">
                Total<span class="asteriskField">*</span> </label> <div class="controls "> <input type="number" name="total" value="0" step="0.01" css-id="total_id" class="numberinput form-control" required id="id_total" /> </div>

我正在使用 Django Crispy Forms。当我使用 qty_idprice_id 和 jQuery 进行一些计算时,它不起作用。 我想将它们的值乘以 value 字段。

我的代码:

$(document).ready(function () {
    $('#qty_id').on('change', function () {
        $('#total_id').val($('#qty_id').val() * $('#price_id').val());
    });
    $('#price_id').on('change', function () {
        $('#total_id').val($('#qty_id').val() * $('#price_id').val());
    });
};

forms.py

class ItemForm(forms.ModelForm):
    def __init__(self, *args, **kwargs):
        super(ItemForm, self).__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.label_class = 'col-lg-2'
        self.helper.form_tag = False
        self.helper.form_class = 'form-inline'

        self.helper.layout = Layout(
                Field('code',),
                'description',
                Field('qty', id="qty_id"),
                Field('price', id="price_id"),
                Field('total', id="total_id"),
                'employee',
            )

    class Meta:
        model = Item
        fields = ('code', 'description', 'qty', 'price', 'total', 'employee',)

【问题讨论】:

  • 显示生成的html。
  • @aaron 见上面我已经添加了生成的 html

标签: javascript jquery django django-forms django-crispy-forms


【解决方案1】:

我发现我错过了 jQuery 就绪方法中的括号,现在一切正常

【讨论】:

    猜你喜欢
    • 2020-01-21
    • 2014-05-09
    • 2014-05-19
    • 2022-11-28
    • 2018-07-16
    • 2019-03-10
    • 1970-01-01
    • 2016-08-16
    • 2012-11-06
    相关资源
    最近更新 更多