Odpowiedzi:
Jeśli pracujesz dla firmy, która zleca rozwój zaplecza, tak jak ja, możesz nie mieć dostępu do szablonu formularza. W takim przypadku nie będzie można zmienić argumentów funkcji VarienForm. (Jeśli można zmienić te argumenty, jak na odpowiedź zatwierdzone, zalecana).
Możesz dodać kod (podany poniżej) do treści strony, której dotyczy problem, w <script>
tagu.
Podsumowując, kod czeka po raz pierwszy zmieniany element, a następnie odblokowuje ten element i resetuje przewijanie do góry strony. Jeśli nic nie wydarzy się w ciągu dziesięciu sekund od uruchomienia skryptu, wyłączy się. Jest to tylko zabezpieczenie, aby zapobiec uruchamianiu skryptu na zawsze w przypadku błędu.
//KILL AUTOFOCUS
(function(){
var lastActiveElement = document.activeElement;
//time elapsed in MS
var time = 0;
//stop checking after 10 seconds
var stopTime = 10000;
//interval to check for changes
var intervalTime = 20;
function _Check_For_Form_Validation(){
if ( document.activeElement != lastActiveElement ){
document.activeElement.blur();
document.documentElement.scrollTop = 0;
clearInterval( interval );
}
if ( time >= stopTime ){
clearInterval( interval );
}
}
var interval = setInterval( function(){
time += intervalTime;
_Check_For_Form_Validation();
}, intervalTime);
})();