<lovInput>要素
ネームスペース: http://xmlns.oracle.com/uix/ui
派生元: <ui:textInput>要素
グループ: UIX Components
要素の型: UINode

<lovInput>要素は、LOVモーダル・ウィンドウを起動するためのテキスト・フィールドとして使用されます。

構文
<lovInput
    [ destination="anyURI" ]
    [ formSubmitted="boolean" ]
    [ onLovInit="string" ]
    [ onLovSelect="string" ]
    [ onLovValidate="string" ]
    [ partialRenderMode="ui:lovInputPartialRenderModeType" ]
    [ partialTargets="NMTOKENS" ]
    [ searchDesc="string" ]
    [ showWindow="boolean" ]
    [ submitPrepare="boolean" ]
    [ unvalidated="boolean" ]
    [ validateBlanks="boolean" ]
>
</lovInput>

注意:
  • この要素は派生元要素のすべての属性と子要素を持つことができます。

  • 説明

    <lovInput>要素は、LOVウィンドウを起動するためのテキスト・フィールドとして使用されます。 この要素は、<listOfValues>要素とともに使用するように設計されています。 詳細は、<listOfValues>要素のトピックを参照してください。

    この要素はtextInputフィールドと検索アイコンを表示します。 アイコンがクリックされた場合(あるいはページの部分リフレッシュ環境でテキストが変更された場合)、一連のコールバックおよびイベントが起動され、フィールド内のテキストが検証されて、場合によってはLOVウィンドウが表示されます。 unvalidated属性をfalseに設定することで、この一連の動作の検証部分のみを完全に無効にできます。

    最初に、onLovInitコールバックが実行されます。 コールバックがtrueを返した場合、<lovInput>要素のdestination属性で指定したページを表示するモーダル・ウィンドウが開きます。 このページを開くURLには、onLovInitコールバックで追加、変更または更新されたパラメータが含まれます。 リンク先ページは、開いた後で、3つの関連パラメータを持つlovFilterイベントを受け取ります。

    LOVウィンドウが開くと、ユーザーが最初に入力したテキストに基づいて予想された完成表が表示されます。 ユーザーは、取消を選択することも(その場合、lovInputのtextInputフィールドは変更されません)、表示された行の1つを選択する、表内の別の行へ移動する、別のカテゴリについて検索する、あるいは新規の検索文字列を入力することもできます。 詳細は、<listOfValues>要素のトピックを参照してください。

    LOVウィンドウが閉じると、onLovSelectコールバック(指定されている場合)が実行されます。 その後、lovCloseイベントが生成されます。

    ページの部分レンダリングが有効な場合、<lovInput>要素の一部が拡張されます。

    ユーザーが検索アイコンをクリックした場合、または入力フィールドのテキストが変更された場合(フィールド全体に空白が入力されている場合でも、validateBlanks属性が検証を制御します)、最初にonLovValidateコールバックが実行されます。 クライアントはこのコールバックを使用して、ページから追加のデータを取得できます。 イベントのURLで送信されるパラメータは、追加、更新または削除(あるいはそのすべて)ができます。 onLovValidateコールバックがfalseを返した場合、検証プロセスは停止します。 onLovValidateコールバックがtrueを返した場合、2つの関連パラメータを持つlovValidateイベントが生成されます。

    lovValidateハンドラでは、クライアントは入力が有効かどうか、または一意の一致であるかどうかをチェックする必要があります。一意の一致とは、ユーザーが「san fran」と入力し、データ値がCaliforniaの都市名であるときに、一致する可能性があるのは「San Francisco」のみである場合などを指します。 データが有効な場合、showWindow属性はfalseに設定されます(一部かつ一意の一致の場合、テキスト・フィールドのプロバイダを更新して、前述の例でいう「San Francisco」という値全体が指定されるようにする必要があります)。 データが有効でない場合、showWindow属性はtrueに設定されます。 showWindowのデフォルト設定はfalseであるため、showWindowは必要な場合にのみEventResultで指定します。

    lovInputは部分リフレッシュの要求を受け取ると、showWindow属性をチェックします。 showWindowがfalseである場合、単にテキスト・フィールドが再レンダリングされます。 showWindowがtrueである場合、LOVウィンドウが開きます。

    ユーザーが入力フィールドのテキストに変更を加えず、lovInputの検索アイコンをクリックした場合、検証イベントは生成されません。 LOVウィンドウが直接作成されます。


    この例では、LOVdialogs.uixに(listOfValuesを使用して)LOVウィンドウが定義された、2つの<lovInput>要素を示します。lov1のウィンドウが閉じると、myCallBack関数が実行されます。 2つ目の例では、検証コールバックおよび検証前コールバックが定義されたページの一部分を示します。

    <form name="form1">
     <contents>
      <script>
       <contents>
        function SelectCallBack(lovWin, field, event)
        {
          // This function will be called after the select button has been clicked.
          // - lovWin points to the not-yet-closed LOV dialog window.
          // - field points to the lovInput field that triggered this
          //   LOV dialog.
          // - event is the window close event
          //
          var fldNam = field.name;
          var val = field.value;
          var str = "SelectCallback called\nfieldName: '" + fldNam
                     + "'\nvalue: '" + val;
    
          confirm(str);
    
          // Now we could gather values from the LOV Window (using the lovwin
          // object), and use them build a string to set into the original
          // LovInput text field using: field.value = newValue;
          return true;
        }
        function _printCallbackParams(params, CBName)
        {
          // This function just raises a confirm dialog listing
          // key:value pairs in the params object
          var str = CBName + ' called with:'
          for (var key in params)
          {
           str += "\nparameter: '" + key +
                  "', value '" + params[key] + "'";
          }
          return confirm(str);
        }
        function InitCallBack(params)
        {
          // If passed as the onLovInit attribute, this function is called
          // after the LOV icon is clicked, but before the LOV dialog window
          // is launched. This gives the developer a change to change the
          // parameters that are going to the dialog window.
          // The params object contains all the parameters which will end up
          // on the URL.
    
          // Add our own parameter. This will end up as a parameter on the
          // LOV dialog window URL.
          // (http://...?...&myParam=foo)
          params["myParam"] = "foo";
    
          return _printCallbackParams(params, 'InitCallback');
          // return true;
        }
        function ValidateCallBack(params)
        {
          // If passed as the onLovValidate attribute, this function is called
          // before the lovValidate event is fired.
          // This gives the developer a chance to add, subtract or change
          // parameters that will be sent with the lovValidate event
          return _printCallbackParams(params, 'pre-validate Callback');
        }
       </contents>
      </script>
      <stackLayout>
       <contents>
        <flowLayout>
         <contents>
          <styledText text="value 1: "/>
          <lovInput name="lov1"
                    shortDesc="Click to select a predefined value"
                    onLovInit="initCallBack"
                    onLovSelect="selectCallBack"
                    destination="LOVwindows.uix"/>
         </contents>
        </flowLayout>
        <flowLayout>
         <contents>
          <styledText text="value 2: "/>
          <lovInput name="lov2"
                    id="Lov-target2"
                    showWindow="${uix.eventResult['Lov-target2'].showWindow}"
                    shortDesc="Click to select a predefined value"
                    onLovInit="initCallBack"
                    onLovSelect="selectCallBack"
                    onLovValidate="validateCallBack"
                    destination="LOVwindows.uix"/>
         </contents>
        </flowLayout>
       </contents>
      </stackLayout>
     </contents>
    </form>

    属性

    説明
    destination LOVウィンドウを移入するページへのパス。
    URI
    formSubmitted formSubmitted属性がtrueに設定されている場合、フォーム送信によってlovValidateイベントが送信されます。 デフォルトでは、JavaScriptによってURLが置換されます。新しいURLは、古いURLにイベント名およびイベント・パラメータを追加したものです。 formSubmitted属性は、lovValidateイベントにのみ影響します。 lovFilterおよびlovSelectイベントは、常にフォーム送信を使用して送信されます。
    boolean
    onLovInit LOVウィンドウが開く前にコールされるJavaScript関数の名前。 シグネチャは次のとおりです。

    function initCallBack(params)

    params引数は、LOVウィンドウを開く際に使用するURLに含まれるすべてのパラメータによって構成される単純なオブジェクトです。 開発者は、このコールバックのパラメータを追加、削除または更新できます。
    string
    onLovSelect LOVウィンドウが閉じた後にコールされるJavaScript関数の名前。 シグネチャは次のとおりです。

    function selectCallBack(Win, field, event)

    引数は次のとおりです。
    • Win: LOVウィンドウ。 開発者がLOVウィンドウからデータを取得できる最後の機会です。 LovSelectコールバックは、小さなデータセットからのデータをlovInputテキスト・フィールドに戻すような単純なケースに使用します。 このコールバックはPPR環境ではラウンドトリップを、PPR以外の環境ではリフレッシュを保存できます。 将来、データの移動を容易にする一連のプロキシ・ルーチンが提供される予定ですが、現在のリリースには含まれていません。
    • field: fieldは、LOVダイアログを起動した<lovInput>要素のテキスト・フィールド部分を示します。
    • event: ウィンドウを閉じるイベント。

    string
    onLovValidate lovValidateイベント送信の直前にコールされるJavaScript関数の名前。 シグネチャは次のとおりです。

    function initCallBack(params)

    params引数は、イベント送信の際に使用するURLに含まれるすべてのパラメータによって構成される単純なオブジェクトです。開発者は、このコールバックのパラメータを追加、削除または更新できます。
    string
    partialRenderMode lovInputコンポーネントのページの部分レンダリング動作を制御する属性。partialRenderModeのデフォルトはnoneで、自動検証は無効となり(lovValidateイベントは送信されない)、lovUpdateイベントがページの全体送信を使用して送信されます。 partialRenderModeがselfまたはmultipleに設定されている場合、lovValidateイベントおよびlovUpdateイベントがページの部分イベントとして送信されるため、ページ全体を再度レンダリングせずに指定された部分ターゲットを更新できます。

    ページの部分レンダリングを有効にするには、lovInputコンポーネントのid属性が設定されていること、lovInputコンポーネントがUIXの<body>要素とともに使用されていることが必要です。 これらの要件が満たされ、partialRenderModeがselfまたはmultipleに設定されている場合に、lovInputコンポーネントでは、アプリケーションへのイベント送信時にページの部分レンダリング・アーキテクチャが使用されます。 これらの要件のいずれかが満たされていない場合、あるいはブラウザでページの部分レンダリングをサポートしていない場合には、自動検証が無効になり、ページの全体レンダリングを介して更新が実行されます。


    ui:lovInputPartialRenderModeType
    partialTargets partialRenderModeがmultipleに設定されている場合の部分ターゲット・ノードのID。 lovInputのIDは、一連の部分ターゲットに自動的に含まれ、partialTargetsのリストには明示的に指定されません。
    NMTOKENS
    searchDesc LOVボタンの検索の説明。 このテキストは、一般にユーザー・エージェントがツールチップ・ヘルプ・テキストを表示する際に使用されます。
    string
    showWindow テキスト・フィールドの値が有効と判断されると、showWindow属性はfalseに設定されます。 lovInputノードのページの部分リフレッシュ時にshowWindowがtrueである場合、LOVウィンドウを表示するためのスクリプトが作成されます。 showWindowがfalseの場合、特別な処理は行われません。
    boolean
    submitPrepare

    submitPrepare属性がtrueに設定されている場合、onLovSelectコールバックはコールされません。 かわりに、lovPrepareイベントが囲んでいるフォームとともに送信されます。

    onLovSelectコールバックによって、クライアントはJavaScriptのURLパラメータを追加、削除または更新できます。 最終的なLOVダイアログのURLは、これらのパラメータを使用して作成されます。 クライアントは、セキュリティ上の理由からこれらの更新をサーバーで行えます。 この場合、lovPrepareコールバックを使用できます。

    lovPrepareイベントのイベント・ハンドラによって<lovInput>要素のバインド先が更新され、showWindow属性バインディングがTRUEに設定されます(lovValidateハンドラと同じです)。 次にUIXによってJavaScriptが送信され、LOVウィンドウが開きます。

    onLovSelectコールバックとlovPrepareイベントのいずれもクライアントで使用されることはほとんどありません。


    boolean
    unvalidated この値をtrueに設定すると、検証ステップが実行されません。 onChangeハンドラは生成されず、lovValidateイベントも生成されません。 エンド・ユーザーは、LOVウィンドウを表示することはできますが、検索アイコンのクリック(ページの部分リフレッシュをサポートしていない環境でのデフォルト動作)によってのみ表示できます。
    boolean
    validateBlanks デフォルトでは、入力フィールドが空白であるか、すべて空白文字である場合(有効なテキストから変更された空白文字の場合を含む)、lovValidateイベントは起動されません。 この属性をtrueに設定すると、フィールドが空または空白文字のみに変更された場合に、lovValidateイベントが起動されます。
    boolean