Я написал простой кофейный скрипт для отображения / скрытия средства выбора даты в зависимости от выбранной опции из раскрывающегося списка, и он работает, но имеет небольшой недостаток - после того, как я выбрал дату в устройстве выбора даты и отправил форму, средство выбора даты исчезает, что, я считаю, может быть немного запутанным для конечных пользователей. Чтобы исправить это, я написал дополнительную функцию и выполнил ее «при загрузке окна», однако это разбивает мои тесты Jasmine таким образом, что весь набор тестов даже не запускается локально и CI.
Это код Я написал.
- Функция для включения / выключения DatePicker в зависимости от выбранного значения из выпадающего списка
$(document).on 'ready page:load page:restore', ->
$('body').on 'change', '.filter_status', (ev) ->
selected = ev.target.value
if selected == 'option_1' || selected == 'option_2'
$('#datepicker').show()
else $('#datepicker').hide()
Функция для проверки того, какая опция еще выбрана, и включение / выключение средства выбора даты
toggleDatepicker = ->
selected = $('.filter_status #status').children('option:selected').val()
if selected == 'option_1' || selected == 'option_2'
$('#datepicker').show()
Выполнение функции при загрузке окна.
window.onload = toggleDatepicker
Это работает нормально Однако, когда я go до http://localhost:3000/specs
для запуска JS тестов ничего не происходит. У меня более 200 тестов, и ни один из них даже не запущен, я вижу только пустую страницу. Также он ломает мою тестовую сборку CI, сборка зависает. У вас есть идеи, как мне обойти это?
Это весь сценарий.
$(document).on 'ready page:load page:restore', ->
$('body').on 'change', '.filter_status', (ev) ->
selected = ev.target.value
if selected == 'option_1' || selected == 'option_2'
$(#datepicker').show()
else $('#datepicker').hide()
toggleDatepicker = ->
selected = $('.filter_status #status').children('option:selected').val()
if selected == 'option_1' || selected == 'option_2'
$('#datepicker').show()
window.onload = toggleDatepicker