2017-05-05 6 views
0

こんにちはOracle JETを使用してアプリケーションを作成しています。LoginTestページの「ログイン」ボタンをクリックすると、検証後にホームページに移動します。私は入力を検証することができましたが、私はそれをホームページに送ることができませんでした。私は複数のバインディングを使用しようとしましたが、それは役に立たないです。誰かが助けてくれますか?Oracle jetのログイン・ページ

HTMLコード

h1>logintest</h1> 
<div align="center"> 
<label for="username">Username</label> 
<input id="username" type="text" required 
     data-bind="ojComponent: {component: 'ojInputText', 
           validators: [{type: 'regExp', options: {pattern: '[a-zA-Z0-9]{3,}', 
           messageDetail: 'You must enter at least 3 letters or numbers'}}], 
          invalidComponentTracker: tracker}" /><br /><br /> 
<label for="password">Password</label> 
<input id="password" type="password" required 
     data-bind="ojComponent: {component: 'ojInputPassword', 
           validators: [{type: 'regExp', options : {pattern: '(?=.*\\d)(?=.*[a-z])(?=.*[A-Z]).{6,}', 
           messageSummary : '{label} too Weak', 
           messageDetail: 'The password must contain atleast one uppercase, one lowercase, one number and must be 6 digits long'}}], 
           invalidComponentTracker: tracker}" /><br /><br /> 
<a class="oj-button-primary oj-button-xl" 
    href="http://localhost:8383/Test/index.html?root=home" id="create" type="button" 
    data-bind="ojComponent: {component: 'ojButton', 
          label: 'Login', 
          disabled: shouldDisableCreate()}, 
     click: onClick"></a> 
</div> 

JAVASCRIPT CODE

define(['ojs/ojcore', 'knockout', 'ojs/ojinputtext', 'ojs/ojbutton', 'ojs/ojknockout-validation', 'ojs/ojmodel' 
], function (oj, ko) { 
    /** 
    * The view model for the main content view template 
    */ 
    function logintestContentViewModel() { 
     var self = this; 
     self.tracker = ko.observable(); 
     self.username = ko.observable(""); 
     self.password = ko.observable(""); 
     self.clickedButton = ko.observable(); 
     self.buttonClick = function(data, event) 
     { 
      var trackerObj = ko.utils.unwrapObservable(self.tracker); 
      if (!this._showComponentValidationErrors(trackerObj)) 
      { 
       return; 
      } 

     }; 
     self.routePage = function(data,event) 
     { 
      self.clickedButton(event.currentTarget.id); 
      return true; 
     }; 
     self.onClick = function() 
     { 
      self.buttonClick(); 
      self.routePage(); 
     } 
     self.shouldDisableCreate = function() 
     { 
      var trackerObj = ko.utils.unwrapObservable(self.tracker), 
      hasInvalidComponents = trackerObj ? trackerObj["invalidShown"] : false; 
      return hasInvalidComponents; 
     }; 
     self._showComponentValidationErrors = function (trackerObj) 
     { 
      trackerObj.showMessages(); 
      if (trackerObj.focusOnFirstInvalid()) 
      return false; 
     }; 

    } 
    return logintestContentViewModel; 
}); 

答えて

1

あなたがojRouterを使用している場合は、単に

oj.Router.go(「ルート名を使用することができます");

ojRouterを使用していない場合は、ロケーションオブジェクトを使用できます。ような何か:

window.location.pathname = '/ホームページ'

私はojRouterを使用することをお勧めし、それがこのようなことのためにcanEnter()メソッドです。

ルータ料理のデモ:ルータcanEnter方法について http://www.oracle.com/webfolder/technetwork/jet/jetCookbook.html?component=router&demo=simple

JSDocs http://www.oracle.com/webfolder/technetwork/jet/jsdocs/oj.RouterState.html

+0

は助けをありがとうございました!それはwindown.location.hrefオブジェクトでうまくいきました – Arun

関連する問題