2016-11-25 61 views
0

我一直在努力讓我的登錄頁面工作,一旦我按下輸入鍵,但它不起作用。幫助任何人? 這裏是我的代碼:用回車鍵登錄敲擊js

的JavaScript /視圖模型:

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; 
}; 

查看/ 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> 

任何想法錯在這裏去?如果您願意,請在此發佈您的建議,謝謝!

+0

你有沒有嘗試調用'validateAndSubmit'函數而不是'callback.call(viewModel);'? – gkb

+0

@gkb我按Enter鍵時收到的錯誤是:Login.js:97 Uncaught TypeError:無法讀取undefined屬性'validationGroup' – Anony

+0

@gkb我試過但錯誤仍然存​​在 – Anony

回答

0

我設法通過在devExpress的dxPasswordTB中使用onEnterKey來解決此問題。另外,我將params.validationGroup.validate();更改爲DevExpress.validationEngine.validateGroup(),並最終定義了該值。