2017-06-26 4 views
0

私はブートストラップモーダルでテキスト入力を作成しましたが、入力テキストの入力検証をしたいと思います(内部のテキストは空ではありません。入力の検証のために、それはクロムとFirefoxでうまく動作しますが、IEでは問題があります。 問題は、IEの入力ボックスは、下の画像(クロムとFirefoxはありません)のように右上隅に少し十字記号が表示され、ユーザが何かを入力すると十字記号が表示されます。空になるまでテキストを1つずつ削除すると、検証が機能し、ボタンは無効になります。最初にクロスサインを使用してテキストを削除すると、検証が機能します。ただし、2回目以降の検証では機能しないため、提出は許可されます。提出されたコンテンツは、クロスサインを使用して削除する前のテキストになります。私はIEがテキストをキャッシュするようです。この問題を解決する方法を知りたいですか?IE入力の十字記号

アップデート: 私はIE10 & 11(Remove IE10's "clear field" X button on certain inputs?)のためにこの問題を解決するための答えを見つけましたが、IEの以前のバージョンのための解決策は何ですか?

enter image description here

<input type="text" name="name" ng-model="newName" required/> 
<button type="button" class="btn btn-primary" ng-click="submit()" ng-disabled="form.name.$invalid" data-dismiss="modal">Submit</button> 

答えて

1

隠すが正常に動作しますが、代わりにそれを隠すことなく、あなたは(angular.elementを介して、またはjqlite)jqueryのを使用してそれを処理することができます。テキスト入力フィールドでマウスイベントを確認することができます。要素が新規でない場合は、& newvalueがNULLの場合、triggerHandlerメソッドを使用して、入力フィールドでの変更イベントを入力します。

$('#textFieldId').bind("mouseup", function() { 
     var $input = $(this); 
     var oldValue = $input.val(); 
     if (oldValue == "") { 
      return; 
     } 
     setTimeout(function() { 
      var newValue = $input.val(); 
      if (newValue == "") { 
       $input.triggerHandler('change'); 
      } 
     }); 
    }); 

http://plnkr.co/edit/GgU3XbaRaVUNW4NBrzKm?p=preview

と同様に、いくつかのマイナーな変更であなたは、入力フィールドにそれを使用するリンク関数内&をE /タイプディレクティブ&書き込み同じコードを作成することができます。

関連する問題