2016-11-25 3 views
0

Ich habe versucht, meine Login-Seite zu arbeiten, sobald ich die Eingabetaste gedrückt habe, aber es funktioniert nicht. Helfen Sie jemandem? Hier ist meine Codes:Login mit der Eingabetaste gedrückt Knockout js

Javascript/Ansichtsmodell:

ko.bindingHandlers.enterkey = { 
    init: function (element, valueAccessor, allBindings, viewModel) { 
     var callback = valueAccessor(); 
     $(element).keypress(function (event) { 
      var keyCode = (event.which ? event.which : event.keyCode); 
      if (keyCode === 13) { 
       callback.call(viewModel); 
       return false; 
      } 
      return true; 
     }); 
    } 
}; 

Mobile.Login = function (params) { 
    var viewModel = { 
     dxPasswordTB: { 
      value: ko.observable(""), 
      showClearButton: true, 
      placeholder: ko.observable("PASSWORD"), 
      mode: 'password' 
     }, 
     validateAndSubmit: function (params) { 
      var result = params.validationGroup.validate(); 
      ... 
     }, 
    }; 
    return viewModel; 
}; 

Ansicht/HTML:

<div class="row"> 
    <div class="col-sm-12 col-xs-12"> 
     <div class="form-group"> 
      <div class="input-group"> 
       <span class="input-group-addon"><i class="icon-password"></i></span> 
       <div class="form-control"> 
        <div data-bind="dxTextBox: dxPasswordTB, dxValidator: PasswordVR, valueUpdate: 'afterkeydown', enterkey: validateAndSubmit""></div> 
       </div> 
      </div> 
     </div> 
    </div> 
</div> 

Jede Idee, was hier schief gelaufen ist? Wenn Sie dies tun, bitte posten Sie Ihre Vorschläge hier, danke!

+0

haben Sie versucht, Aufruf 'validateAndSubmit' Funktion anstelle von' Callback.call (viewModel); '? – gkb

+0

@ gkb Der Fehler, den ich erhielt, wenn ich die Eingabetaste gedrückt habe, ist: Login.js: 97 Uncaught TypeError: Kann die Eigenschaft 'validationGroup' von undefined nicht lesen – Anony

+0

@gkb Ich habe versucht, aber der Fehler besteht immer noch – Anony

Antwort

0

Ich habe es gelöst, indem Sie onEnterKey in dxPasswordTB von devExpress. Außerdem änderte ich params.validationGroup.validate(); zu DevExpress.validationEngine.validateGroup() und der Wert wurde schließlich definiert.