2017-06-26 85 views
0

我在bootstrap模式下創建一個文本輸入,我想對輸入文本進行輸入驗證(裏面的文本不能爲空,如果是,則提交按鈕被禁用)。對於輸入驗證,它在Chrome和Firefox中運行良好,但在IE中存在一些問題。 問題是IE中的輸入框在右下角有一個小十字標記,如下圖所示(但是chrome和firefox沒有),當用戶輸入東西時,十字標記顯示。如果逐個刪除文本直到空白,驗證將起作用,並且該按鈕將被禁用。如果在第一次使用十字標記刪除文本,驗證將起作用。然而,第二次和以後,驗證不起作用,並允許提交。提交的內容將是使用十字標記刪除前的文本。在我看來,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處理。您可以檢查文本輸入字段上的鼠標事件,如果元素不是原始的&如果新值爲空,則觸發角度使用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

而且同樣與您可以創建電子郵件一些細微的變化/ A型指令&寫相同的代碼鏈接功能&使用它輸入字段內。