В проекте Symfony 4 у меня есть элемент формы, который работает в Chrome и Firefox, но не в Explorer, и я не могу понять, почему.Рендеринг кажется идентичным, поэтому я должен обрабатывать поле при отправке формы, но опять же, для меня нет ничего очевидного в том, почему он не работает.
Мой класс сущностей:
class Person
{
/**
* @ORM\Column(type="date", nullable=true)
*/
private $dob;
// ....
}
Мой тип формы:
class PersonFormType extends AbstractType
{
public function buildForm(FormBuilderInterface $builder, array $options)
{
$builder
->add('dob', DateType::class, [
'label' => 'DOB (m/d/yyyy)',
'widget' => 'single_text',
'format' => 'M/d/yyyy',
'attr' => ['autocomplete' => 'off', 'class' => 'js-dob'],
'html5' => false,
]);
}
}
и, наконец, javascript, который обрабатывает при отправке формы:
$('.js-save-button').on('click', function() {
// convert 2-digit years to 4-digit version in dob field
$('.js-dob').each(function() {
let date = new Date($(this).val());
if (date instanceof Date && !isNaN(date)) {
if (date > new Date()) {
date.setFullYear(date.getFullYear() - 100);
}
$(this).val(date.toLocaleDateString("en-US"));
}
});
});
Код javascript довольно понятен, но идеязаключается в том, что если пользователь вводит dob, например 1 июня 1923 года, как «6/1/23», то он будет преобразован в «6/1/1923» при отправке формы.В настоящее время все отлично работает в Chrome / FF, но в IE я получаю ошибку проверки формы от Symfony с сообщением «Это значение недопустимо».независимо от того, как я ввожу дату.