Копировать дату / дату / время из одного Html ввода в другой Html ввода с Javascript - PullRequest
0 голосов
/ 06 апреля 2020

У меня 2 a элементов. Оба открывают модальный Bootstrap. Этот элемент a используется для создания новой записи, поэтому он отправляет текущую дату / время:

<a style="color:#5cb85c" data-CreateDate="@DateTime.Now" data-toggle="modal" data-target="#OnPostModal" href="#OnPostModal" class="fas fa-plus-circle"></a>

Другой элемент a содержит некоторые поля из записи, которая уже была создана, поэтому он отправляет уже существующую дату создания.

<a data-toggle="modal" data-target="#OnPostModal" data-CreateDate="@item.Supplier.CreateDate" href="#CallModal" class="fas fa-edit"> </a>

Я использую некоторые JavaScript, чтобы заполнить всплывающее поле в модале:

<script type="text/javascript">
    $('a[data-toggle=modal], button[data-toggle=modal]').click(function () {

        var data_CreateDate = '';

        if (typeof $(this).data('CreateDate') !== 'undefined') {
            data_CreateDate = $(this).data('CreateDate');
        }

        $('#CreateDate').val(data_CreateDate);
    })

</script>

Наконец, это область в модале, которая должна быть заполнена:

<div class="form-group">
   <label asp-for="Supplier.CreateDate" class="control-label"></label>
   <input asp-for="Supplier.CreateDate" id="CreateDate" class="form-control" />
   <span asp-validation-for="Supplier.CreateDate" class="text-danger"></span>
</div>

Этот метод работает для строковых значений, но, похоже, совсем не работает для значений DateTime или Date. Я пытался:

var data_CreateDate = new Date();

Это не работает.

1 Ответ

1 голос
/ 06 апреля 2020

new Date() возвращает объект. Вы хотите строку Несколько форматов на выбор:

const output = document.getElementById('output');
const d = new Date();
output.innerText = d.toString() + '\n';
output.innerText += d.toISOString() + '\n';
output.innerText += d.toGMTString() + '\n';
output.innerText += d.toLocaleDateString() + '\n';
output.innerText += d.toUTCString() + '\n';
...