The most annoying problem, you might think that chrome (or any other browser that has this problem) will check if it is visible before doing anything, but like good internet researchers, you need to hack the problem with the browser.
$(document).on('shown.bs.tab','a[data-toggle="tab"]',function(e){ $(':input[required]:hidden').removeAttr('required').addClass('wasrequired'); $('.wasrequired:visible').removeClass('wasrequired').prop('required', 'required'); })
I did not want to change anything in my code, but another solution is to add class = 'required', so we do not need to use wasrequired as a tmp solution.
I also had to add my form class .form-ajax in the selectors, since my form was outside the tabs area.
source share