2012-06-02 2 views
0

Я сохраняю форму на Alt + S, используя jquery, и также проверяю необходимые поля. Он работает правильно, но у меня есть одна проблема. Когда я нажимаю Alt + S перед входом в требуемое поле, он дает мне ошибку для требуемого поля и момент, когда я набираю что-либо в нужном поле, тогда форма сохраняется. Я хочу, чтобы после ошибки, когда поля заполнены, и если пользователь снова нажимает Alt + S, форма должна быть сохранена.hotkeys with jquery

Jquery код

$(document).ready(function() { 
    var isAltKey = false; 
    var isShiftKey = false; 
    document.onkeyup = function (e) { 
     if (e.which == 18) isAltKey = false; 
     if (e.which == 16) isShiftKey = false; 
    } 

    document.onkeydown = function (e) { 
     if (e.which == 18) isAltKey = true; 
     if (e.which == 16) isShiftKey = true; 

     //ALT+S 
     if (e.which == 83 && isAltKey == true) { 
      TriggerSaveButton(); 
      StopDefaultAction(e); 
     } 

     else if (e.which == 9 && isShiftKey == true) { 
      if (document.getElementById("cmbUnder_OptionList").focus() == true) { 
       document.getElementById("txtGroupSname").focus(); 
       StopDefaultAction(e); 
      } 
     } 

    } 
    function StopDefaultAction(e) { 
     if (e.preventDefault) { e.preventDefault() } 
     else { e.stop() }; 
     e.returnValue = false; 
     e.stopPropagation(); 
    } 



    function TriggerSaveButton() { 
     var groupname = $('#txtGroupName').val(); 
     if ($('#tab2').is(":visible")) { 
      if ((document.getElementById('<%= txtGroupName.ClientID %>').value == "") && ($('<%= listboxdestination.ClientID %>').children().length == 0)) { 
       ValidatorEnable(document.getElementById('<%= reqtxtGroupName.ClientID %>'), true); 
       ValidatorEnable(document.getElementById('<%= reqlstboxdest.ClientID %>'), true); 
       return false; 
      } 

      else if (groupname != "" && ($("#<%= listboxdestination.ClientID %> option").length != 0)) { 
       javascript: __doPostBack('<%=btnaddfrmSave.UniqueID %>', ''); 

      } 
     } 
     else { 
      if ((document.getElementById('<%= txtGroupName.ClientID %>').value == "")) { 
       ValidatorEnable(document.getElementById('<%= reqtxtGroupName.ClientID %>'), true); 
       return false; 
      } 

      else if (groupname != "") { 
       javascript: __doPostBack('<%=btnaddfrmSave.UniqueID %>', ''); 

      } 

     } 

    } 
});  
+0

Может ли вы отправить мне еще код вашей формы. так что было бы легко обнаружить proble ..? –

ответ

0

По-моему, Вы должны использовать Jquery форма проверки не Requirefield валидатор в Asp.net.

В настоящее время вы используете обязательный полевой валидатор в своей базе, вы можете заменить его проверкой на стороне клиента Jquery. , так что это может решить вашу проблему.

См. Раздел Как проверить использование JQuery.

  1. jquery for validation Plugins
  2. formValidator
+0

может показать мне мой код, пожалуйста – asifa

+0

rest - это форма asp.net, которая проста с обязательными полями валидаторов – asifa

+0

hi, @asifa please Показать ссылки ссылки для вашего решения. Я добавил две ссылки ссылки на мой ответ. –

0

Кодекс:

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.2/jquery.min.js"></script> 
     <script>$(function(){ 
     $(document).keyup(function(event){ 
       if(event.which == 65){ 
        alert("The Letter A was pressed"); 
       } 
     }); 
    }); 
    </script> 

Каждый ключ имеет числовое значение, например, равно 65 и б составляет 66 (и так далее).

http://youtu.be/xXZsTNwfMNc Это учебное пособие, в котором вы подробно расскажете о горячих клавишах с jQuery.

+0

Обратите внимание, что [ссылки только ответы не поощряются] (http://meta.stackoverflow.com/tags/link- only-answers/info), SO-ответы должны быть конечной точкой поиска решения (по сравнению с еще одной остановкой ссылок, которые со временем становятся устаревшими). Пожалуйста, подумайте о добавлении отдельного резюме здесь, сохранив ссылку в качестве ссылки. – kleopatra