Показать сообщение отдельно

  #5  
Старый 01.05.2009, 22:37
heretic1990
Постоянный
Регистрация: 02.07.2008
Сообщений: 472
С нами: 9399011

Репутация: 444
По умолчанию

Индикация языка ввода будит полезна при вводе пароля, скрипт покажет язык ввода и регистр вводимых букв.

вставляем это на страницу:

Код:
<script type="text/javascript">
  $(function(){
    $(':password').keyboardLayout();
  });
</script>

подгружаем эти файлы:
jquery.keyboardLayout.js и jquery.js
Код:
(function() {

  jQuery.keyboardLayout = {};

  jQuery.keyboardLayout.indicator = $('<span class="keyboardLayout" />');

  jQuery.keyboardLayout.target;

  jQuery.keyboardLayout.layout;

  jQuery.keyboardLayout.show = function(layout){
    this.layout = layout;
    this.indicator.text(layout);
    this.target.after(this.indicator);
  };

  jQuery.keyboardLayout.hide = function(){
    this.target = null;
    this.layout = null;
    this.indicator.remove();
  };

  jQuery.fn.keyboardLayout = function()
  {
    this.each(function(){

      $(this).focus(function(){
        jQuery.keyboardLayout.target = $(this);
      });

      $(this).blur(function(){
        jQuery.keyboardLayout.hide();
      });

      $(this).keypress(function(e){
        var c = (e.charCode == undefined ? e.keyCode : e.charCode);
        var layout = jQuery.keyboardLayout.layout;
        if (c >= 97/*a*/  && c <= 122/*z*/ && !e.shiftKey ||
            c >= 65/*A*/  && c <= 90/*Z*/  &&  e.shiftKey ||
             (c == 91/*[*/  && !e.shiftKey ||
              c == 93/*]*/  && !e.shiftKey ||
              c == 123/*{*/ &&  e.shiftKey ||
              c == 125/*}*/ &&  e.shiftKey ||
              c == 96/*`*/  && !e.shiftKey ||
              c == 126/*~*/ &&  e.shiftKey ||
              c == 64/*@*/  &&  e.shiftKey ||
              c == 35/*#*/  &&  e.shiftKey ||
              c == 36/*$*/  &&  e.shiftKey ||
              c == 94/*^*/  &&  e.shiftKey ||
              c == 38/*&*/  &&  e.shiftKey ||
              c == 59/*;*/  && !e.shiftKey ||
              c == 39/*'*/  && !e.shiftKey ||
              c == 44/*,*/  && !e.shiftKey ||
              c == 60/*<*/  &&  e.shiftKey ||
              c == 62/*>*/  &&  e.shiftKey) && layout != 'EN') {

          layout = 'en';

        } else if (c >= 65/*A*/ && c <= 90/*Z*/  && !e.shiftKey ||
                   c >= 97/*a*/ && c <= 122/*z*/ &&  e.shiftKey) {

          layout = 'EN';

        } else if (c >= 1072/*Р°*/ && c <= 1103/*СЏ*/ && !e.shiftKey ||
                   c >= 1040/*Рђ*/ && c <= 1071/*РЇ*/ &&  e.shiftKey ||
                   (c == 1105/*С‘*/ && !e.shiftKey ||
                    c == 1025/*РЃ*/ &&  e.shiftKey ||
                    c == 8470/*в„–*/ &&  e.shiftKey ||
                    c == 59/*;*/   &&  e.shiftKey ||
                    c == 44/*,*/   &&  e.shiftKey) && layout != 'RU') {

          layout = 'ru';

        } else if (c >= 1040/*Рђ*/ && c <= 1071/*РЇ*/ && !e.shiftKey ||
                   c >= 1072/*Р°*/ && c <= 1103/*СЏ*/ &&  e.shiftKey) {

          layout = 'RU';

        }
        if (layout) {
            jQuery.keyboardLayout.show(layout);
        }
      });
    });
  };

})();

Каму надо тот разберётся, кто непонял что это вот ДЕМО

Последний раз редактировалось heretic1990; 13.05.2009 в 10:34..
 
Ответить с цитированием