Here is my workaround for the time being. It works, but it's not perfect.
I ended up tapping into the dropdown hide event and preventing default like this:
$('.schedule-dropdown').on('hide.bs.dropdown', function (e) {
e.preventDefault();
})
The successfully stopped the dropdown from disappearing, but now the problem was it never went away. So I just took the easy way out and added a cancel button, and linked that and the submit button to close it manually like so:
$('.schedule-dropdown').removeClass('open');
So that's the best I've got for now. It would be nice to be able to close it if the user clicks anywhere else on the screen, but its' not critical for now.
EDIT
Here is a further work-around to have it close if the user clicks anywhere else:
$('.schedule-dropdown').on('hide.bs.dropdown', function (e,t) {
e.preventDefault();
}).on('show.bs.dropdown', function (e,t) {
var ct = e.currentTarget;
$('body').click(function(e) {
var clicked = e.target;
if($(clicked).hasClass('day')||$(clicked).hasClass('month')||$(clicked).hasClass('year')){
//do nothing, they selected a date element
} else {
console.log('remove day');
$(ct).removeClass("open");
$('body').off('click');
}
})
})