Передача дат из jquery в html - PullRequest
       2

Передача дат из jquery в html

0 голосов
/ 12 октября 2018

Я создал кнопку, связанную с jquery, чтобы при нажатии на edit button в моей форме данные из записи также заполнялись в форме.

Остальные значения заполняются в форме через jquery, однако моя проблема со значением dates.Каким-то образом dates не отображаются в форме при возврате из jquery.

html

...
<button type="button" class="edit-current-policy-term float-right" 
    data-toggle="modal" data-target="#edit-term-policy-modal" 
    data-term="{{ policy_period.term }}" 
    data-start_term="{{ policy_period.start_term }}" 
    data-end_term="{{ policy_period.end_term }}" 
    data-pk="{{ policy_period.pk }}">
    <i class="fas fa-edit"></i>
</button>

jquery

$(document).ready(function () {
    $(document).on('show.bs.modal', '#edit-term-policy-modal', function (event) {
        const button = $(event.relatedTarget); 
        let term = button.data('term'); 
        let start_term = button.data('start_term'); 
        let end_term = button.data('end_term'); 
        const pk = button.data('pk'); 

        const modal = $(this);                     
        modal.find('.modal-body #id_term_number').val(term);
        modal.find('.modal-body #id_start_term').val(start_term);
        modal.find('.modal-body #id_end_term').val(end_term);
    });
});

формы

class NewTermPolicyPeriodForm(forms.ModelForm):

    def __init__(self, *args, **kwargs):
        super(NewTermPolicyPeriodForm, self).__init__(*args, **kwargs)

        self.fields['term'].widget = forms.TextInput(
        attrs={'class': 'form-control', 'id': 'id_term_number', 'name': 'term_number', 'type': 'number',
               'placeholder': 'Term number'})
        self.fields['term'].required = True

        self.fields['start_term'].widget = forms.DateInput(
        attrs={'class': 'form-control', 'id': 'id_start_term', 'name': 'start_term', 'type': 'date',
               'placeholder': 'Term start date'})
        self.fields['start_term'].required = True

        self.fields['end_term'].widget = forms.DateInput(
        attrs={'class': 'form-control', 'id': 'id_end_term', 'name': 'end_term', 'type': 'date',
               'placeholder': 'Term end date'})
        self.fields['end_term'].required = True

        self.fields['term_end'].widget = forms.CheckboxInput(
        attrs={'class': 'form-control', 'id': 'id_term_end', 'name': 'term_end'})
        self.fields['term_end'].required = False

    class Meta:
        model = TermPolicyPeriod
        fields = [
            'term', 'start_term', 'end_term', 'term_end'
        ]

Есть мысли?

1 Ответ

0 голосов
/ 12 октября 2018

Мне удалось решить проблему с модификацией из этого ответа: Как получить месяц и дату JavaScript в двухзначном формате?

Пример jquery код ниже:

.... 
    const button = $(event.relatedTarget);          
    let term = button.data('term');             
    let start_term = new Date(button.data('start_term'));
    let start_term_getMonth = ("0" + (start_term.getMonth() + 1).toString()).slice(-2);
    let start_term_getDate = ("0" + (start_term.getDate()).toString()).slice(-2);

    let end_term = new Date(button.data('end_term'));
    let end_term_getMonth = ("0" + (end_term.getMonth() + 1).toString()).slice(-2);
    let end_term_getDate = ("0" + (end_term.getDate()).toString()).slice(-2);
    const pk = button.data('pk');                   

    const end_term_date = end_term.getFullYear() + '-' + end_term_getMonth + '-' + end_term_getDate;
    const start_term_date = start_term.getFullYear() + '-' + start_term_getMonth + '-' + start_term_getDate;

    const modal = $(this);                          
    modal.find('.modal-body #id_term_number').val(term);
    modal.find('.modal-body #id_start_term').val(start_term_date);
    modal.find('.modal-body #id_end_term').val(end_term_date);    

    console.log(start_term_date, end_term_date);

Причина, по которой вы +1 до month, заключается в том, что Jan начинается с 00 вместо 01.Это также делается до того, как он преобразуется из int в string в приведенном выше коде.Надеюсь, что это имеет смысл для тех, кто сталкивается с этой проблемой.

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