javascript - 在 django 中提交表单时更改日期字段值

标签 javascript jquery django forms

我有一个表格

forms.py

class RegistrationForm(BaseRegistrationForm):
    name = forms.CharField(label='Name of the Entrepreneur', max_length=120)
    ename = forms.CharField(label='Name of the Enterprise', max_length=120)
    sector = forms.CharField(label='Industry Sector', max_length=50, widget=forms.Select(choices=zip(SECTOR_CHOICES, SECTOR_CHOICES)))
    subsector = forms.CharField(label='Sub-sector', max_length=50, widget=forms.Select(choices=zip(SUBSECTOR_CHOICES, SUBSECTOR_CHOICES)))
    address1 = forms.CharField(label='Address Line 1', max_length=100)
    address2 = forms.CharField(label='Address Line 2', max_length=100, required=False)
    city = forms.CharField(label='City/Town', max_length=50)
    state = forms.CharField(label='State', max_length=50)
    country = forms.CharField(label='Country', max_length=50)
    postal_code = forms.CharField(label='Pin Code', max_length=10, required=False)
    estd = forms.DateField(label='Establishment Details')
    contact = forms.IntegerField(label='Contact Number')

对于 DateField 变量,我编写了 javascript

JavaScript 代码:

<script type="text/javascript">
$(function() {
    $('#id_estd').datepicker( {
        changeMonth: true,
        changeYear: true,
        showButtonPanel: true,
        dateFormat: 'mm/yy',
        onClose: function(dateText, inst) { 
            var month = $("#ui-datepicker-div .ui-datepicker-month :selected").val();
            var year = $("#ui-datepicker-div .ui-datepicker-year :selected").val();
            $(this).datepicker('setDate', new Date(year, month, 1));
        }
    });
});
</script>
<style>
.ui-datepicker-calendar {
    display: none;
    }
</style>

estd 字段中显示 mm/yy(例如:02/2014)

提交表单时,我应该提交类似 mm/dd/yy 的值。那么如何在提交表单时更改值?

最佳答案

不能与 javascript 或其他东西一起使用。 django中有一个片段可以使用它。

https://djangosnippets.org/snippets/1688/

将片段代码保存在名为 widgets.py 的文件中,并将类名导入到 forms.py 文件中,然后遵循以下代码:

import datetime
class myForm(forms.Form):
    # ...
    date = forms.DateField(
        required=False,
        widget=MonthYearWidget(years=xrange(1990,datetime.date.today().year+1))
    )

希望它能起作用。

关于javascript - 在 django 中提交表单时更改日期字段值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28476450/

相关文章:

javascript - 当 Knockout 仍在更新订阅者时刷新 UI

javascript - 我试图隐藏输入并用 jquery 显示它,但输入没有显示

javascript - 如何在ejs标签中插入javascript变量

Django MongoDB 问题

javascript - 带有 JSX 和类的 ReactJS 'Hello World' 不向浏览器打印任何内容

javascript - 合法的Javascript

python - Django REST Framework ModelSerializer - 对象未保存

django - 如何在 DRF 的 APIClient() delete() 请求中设置 header ?

php - 将 PHP 添加到 jquery 函数

javascript - 如何在打开 Jquery SimpleModal 时添加动画?