2017-03-23 21 views
1

このMultiComboBoxの例のようにコンボボックスにのみ読み込まれるテキストを入力するようにユーザーを制限したいシナリオがあります。 [これは私のjsbinではないことに注意してください。このスレッドでは、あなたの答え]上記の例でコンボボックスのユーザー入力をSAPUI5のモデルデータのみに制限する方法

http://jsbin.com/sicixisozi/edit?html,js,output

を投稿してください、ユーザーは無効なエントリを要求し、ユーザーを防止します「s」を入力する例えば、コンボボックス内に存在している文字を入力することが許可されていますタイピングから。しかし、私はMultiComboBoxを使用していないが、代わりにコンボボックスを使用すると、この機能は、上記の例に見られるように、デフォルトSAPUI5 コンボボックス

http://jsbin.com/xenidoh/embed?html,output

var mcb = new sap.m.ComboBox({ 

で発見されていない、ユーザーが制限されていませんコンボボックスに何かを入力することができます。どのように私はコンボボックスにMultiComboBoxで同じ機能を実装することができる任意の提案?

+0

。その機能では、入力ボックスを完全に無効にすることができます。つまり、ユーザーはフィールドに何も入力できません。また、同じ機能を利用して、ユーザーが入力した内容を確認し、コンボボックスに表示されたリストと照合して、入力を許可または禁止することができます。 – Sid

答えて

3

コンボボックスの変更イベントで、oComboBox.getSelectedkey()がnullまたは空でないことを確認します。空の場合は、ユーザーが正しい値を選択していないため、エラーが返されます。

oComboBox.attachChange(function(oEvent){ 
      var newval = oEvent.getParameter("newValue"); 
      var key = oEvent.getSource().getSelectedItem(); 


      if (newval !== "" && key === null){ 
      oEvent.getSource().setValue(""); 
      oEvent.getSource().setValueState("Error"); 
      }else{ 
      oEvent.getSource().setValueState("None"); 
      } 

     }); 

か、XMLビューを使用している場合 - oComboBoxは、あなたのコンボボックスであるchange="" に機能を追加します。あなたは完全に入力して無効にしたい場合は、コンボボックスにonAfterRenderingイベントデリゲート機能を付けることができます:ちょうど提案

http://jsbin.com/vupehukena/1/edit?html,output

+0

ComboBoxにMultiComboBoxと同じ機能を実装する方法については、 – user1166085

+0

@ user1166085私の更新された回答をご覧ください - 私はすぐに何かを一緒に嘲笑しました – neeko

+0

これは機能を実装する非常にエレガントな方法です!ありがとうございました! – user1166085

関連する問題