javascript - 如何将 javascript 文件添加到 Django 中的 ModelForm?

标签 javascript jquery html django django-bootstrap3

我想根据下拉列表的选择显示一个单独的 div 标签,我正在使用 ModelForm 创建我的模板。我不确定如何在我的 ModelForm 中添加 javascript。

表单.py

class CustomerForm(forms.ModelForm):
    name = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Customer Name '}))
    address = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Customer Address'}))
    phone_number = forms.IntegerField(widget=forms.TextInput(attrs={'placeholder': 'Customer Phone Number '}))
    email = forms.EmailField(widget=forms.TextInput(attrs={'placeholder': 'Customer Email'}))
    contact_person = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Contact person'}))
    # amc = forms.BooleanField(widget=forms.TextInput(attrs={'placeholder': 'type "amc" if the customer is in AMC'}))
    amc_date = forms.DateField(widget=forms.TextInput(attrs={'placeholder': 'ex: Jan 20, 1996','id':'disabledInput'}))
    amc_product = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Products listed in AMC'}))
    # warranty = forms.BooleanField(widget=forms.TextInput(attrs={'placeholder': 'Type "warranty" if the customer is in Warranty'}))
    warranty_date = forms.DateField(widget=forms.TextInput(attrs={'placeholder': 'ex: Jan 20, 1996'}))
    warranty_product_list = forms.CharField(widget=forms.TextInput(attrs={'placeholder': 'Products listed in warranty'}))
    # on_call = forms.BooleanField(widget=forms.TextInput(attrs={'placeholder': 'Type "oncall/on call" if it is On Call'}))
    # support = forms.CharField(widget=forms.TextInput(attrs={'placeholder':'Enter: amc/warranty/oncall'}))
    support = forms.ChoiceField(choices=support_choice, required=True, widget = forms.Select(attrs={'onchange' : 'customer()'}))

class Meta:
    model = Customer
    fields = ['name','address','phone_number','email','contact_person','support','amc_date','amc_product','warranty_date',
              'warranty_product_list']

当从“支持”选项中选择 amc 时,我想显示“amc_date”和“amc_product”;当从“支持”选项中选择“保修”时,我想显示“warranty_date”和“warranty_product_list”。

customer_detail.html

<script type="text/javascript" src="{% static 'js/customer_detail.js' %}"></script>

<form method="post" action="" enctype="multipart/form-data">
   {% csrf_token %}
   {{ form|crispy }}
   <input type="submit" class="btn btn-default " value="Submit">
</form>

我不确定如何在我的 ModelForm 中使用 Javascript,请帮忙。

最佳答案

Django方式将是

class CustomerForm(forms.ModelForm):
    .
    .
    class Media:
        js = ('js/customer_detail.js',)

然后像{{<yourformname>.media}}一样包含它在你的模板中,并在里面写下你的javascript代码customer_detail.js

关于javascript - 如何将 javascript 文件添加到 Django 中的 ModelForm?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35989083/

相关文章:

如果显示属性位于标题中,则 JavaScript 切换按钮仅适用于第二次单击

c# - 服务器端验证完成后运行 javascript 函数

javascript - 如何销毁 Jquery 函数

javascript - PHP Ajax 按钮按下难题

javascript - 获取具有最大值的子数组的数组键

javascript - 当鼠标悬停在页面上的元素上时,"True"被打印在 "Body"节点的底部

javascript - 选择类为 ="{c}"的元素

javascript - 提交表单时同步确认灯箱

html - 使用按钮 onClick 事件随机化背景图像

Javascript 定时器的顺序