jQuery mouseover отключает возможность нажатия возврата в конце пароля для входа в систему

Internet Explorer — предпочтительный браузер для PeopleSoft, но он не поддерживает :hover. Чтобы имитировать :hover на кнопке входа, я добавил следующий скрипт:

$(function(){
    $(".fg-button:not(.ui-state-disabled)")
    .hover(
    function(){ 
            $(this).addClass("ui-state-hover"); 
        },
        function(){ 
            $(this).removeClass("ui-state-hover"); 
        }
    )
    .mousedown(function(){
            $(this).parents('.fg-buttonset-single:first').find(".fgbutton.ui-stat e-active").removeClass("ui-state-active");
        if( $(this).is('.ui-state-active.fg-button-toggleable, .fg-buttonset-multi .ui-state-active') ){ $(this).removeClass("ui-state-active"); }
        else { $(this).addClass("ui-state-active"); }   
    })
    .mouseup(function(){
        if(! $(this).is('.fg-button-toggleable, .fg-buttonset-single .fg-button, .fg-buttonset-multi .fg-button') ){
        $(this).removeClass("ui-state-active");
        }
    });
});

который идет со следующим html

    <button class="fg-button ui-state-default ui-corner-all" type="button" name="Submit" onClick="submitAction(document.login)">Sign In</button>

Только теперь вместо того, чтобы нажимать Enter после того, как вы ввели свой пароль, и вы автоматически вошли в систему без необходимости нажимать кнопку «Войти», как это делают многие разработчики, теперь вы должны нажать кнопку «Войти», чтобы начать процесс входа. Это вызвало много беспокойства у тех, кто не хочет нажимать кнопку «Войти». Ни один хороший поступок в области доступности не остается безнаказанным.

Полный код находится по адресу http://jsfiddle.net/maniator/2NCHd/1/.


person Sanden    schedule 05.07.2011    source источник
comment
Ничего, что jQuery не исправит: stackoverflow.com/questions/155188/   -  person Kevin Stricker    schedule 06.07.2011


Ответы (1)


IE 7 и более поздние версии поддерживают :hover для произвольных элементов, пока браузер находится в стандартном режиме, а не в режиме причудливого режима — просто убедитесь, что у вас включен правильный тип документа. См. Как заставить :hover работать в IE 7.

Если вам все еще нужно поддерживать IE 6, я вам сочувствую. В этом случае вы можете попробовать добавить независимо от поведения браузера при наведении курсора. Лично в этом случае я бы переключился на строгий тип документа для поддержки IE 7+ и использовал условный комментарий, чтобы применить поведение браузера только к IE 6.

И, как прокомментировал @mootinator выше, вы всегда можете добавить больше JavaScript, чтобы вызвать отправку формы, когда кто-то нажимает ввод, когда фокус находится в полях формы.

person Will Martin    schedule 06.07.2011