2016-04-21 11 views
1

Оказывается, когда вы открываете экран открытия/редактирования (диалог или полный), вы можете нажать CTRL + S, чтобы сохранить экран. Это позволяет избежать всех проверок, которые я закодировал, а также не имеет значения, отключена ли я сама кнопка сохранения Lightswitch. Как я могу отключить это?Lightswitch HTML - отключение функции CTRL + S

на экране просмотра или просмотра, это не происходит, и пользователь может только сохранить там веб-страницы

+0

вы пробовали перекрывая ярлык с помощью javascript в соответствующем hook? Возможно, вы сможете использовать preventDefault в событии keydown, чтобы остановить это. – BobbyJ

+0

@ Crezzer7 Вы могли попробовать мой предложенный ответ и сделали ли это трюк? –

+0

Я попробую это позже этим днем ​​и дам вам знать – Crezzer7

ответ

1

Один из вариантов, чтобы отключить Ctrl +S является удаление МСР-save- кнопку css от кнопки сохранения на экране. Это может быть сделано в созданный метод вашего экрана следующим образом:

myapp.AddEditScreen.created = function (screen) { 
    $(window).one("pagechange", function (e, data) { 
     var $page = $("#" + screen.details._pageId); 
     var $button = $page.find(".msls-save-button"); 
     $button.removeClass("msls-save-button"); 
    }); 
}; 

Мобильный обработчик pagechange JQuery необходимо, чтобы убедиться, что ваш экран визуализируется (и _pageId определяется), как рассматривается в моем ответе на следующее сообщение:

LightSwitch Tabbed screen in Browse template

Такой подход делает трюк, так как библиотека LightSwitch MSLS выполняет vclick против кнопки фиксации путем сопоставления либо сохранение кнопки MSLS или MSLS-кнопку OK классы. Поэтому, если класс msls-save-button удален, vclick не может быть запущен и по существу Ctrl + S игнорируется.

Ниже перечислены MSLS функция библиотеки, которая обрабатывает сочетание клавиш (обработка vclick MSLS-копи-кнопка охватываемые в конце функции):

function _handleScreenKeyboardShortCuts($page, navigationUnit) { 
    var buttonsNeeded = navigationUnit._buttonsNeeded, 
     showCancel; 
    if (!buttonsNeeded) { 
     return; 
    } 
    showCancel = buttonsNeeded.showSaveDiscard || 
     buttonsNeeded.showOkCancel; 
    if (!(showCancel || buttonsNeeded.showOk)) { 
     return; 
    } 
    $page.keydown(function (e) { 
     if (msls_shell._currentNavigationOperation || 
      $.mobile.popup.active) { 
      return; 
     } 
     if (showCancel && _isCancelShortCutKey(e)) { 
      $(".msls-discard-button,.msls-cancel-button", 
       $.mobile.activePage).trigger("vclick"); 
      return false; 
     } else if (_isCommitShortCutKey(e)) { 
      $(".msls-save-button,.msls-ok-button", 
       $.mobile.activePage).trigger("vclick"); 
      return false; 
     } 
    }); 
} 
+0

Работает ли :) :) – Crezzer7

 Смежные вопросы

  • Нет связанных вопросов^_^