2016-05-14 5 views
3

Ich möchte das Verhalten erreichen, zu beschränken/Limit Benutzer ENTR nur 10 Nummern für die Ex beschränken?Wie Eingabefeldlänge (max Länge) mit <md-Autovervollständigung>

Ich sehe, dass sie ein Attribut md-input-maxlength haben, aber ich bin nicht in der Lage, es zu arbeiten, oder finden Sie ein Beispiel.

Schätzen Sie Ihre Eingaben.

+0

versuchen Können Sie diese Antwort versuchen: [Wie können Sie den Wert der Eingabe mit AngularJS begrenzen?] (Http://Stackoverflow.com/a/24701328) (Danke @tymeJV). Wenn es seine Arbeit tut, bitte geben Sie es zu. – Hanna

Antwort

0

Sie können ng-maxlength = "10" verwenden. Hier ist ein Beispiel. Wenn der Benutzer mehr als 10 Zeichen eingibt, ist das Formular ungültig. Sie können dies überprüfen.

<form name="form"> 
    <input type="text" ng-model="model" id="input" name="input" ng-maxlength="10" /> 
    <hr> 
    input valid? = <code>{{form.input.$valid}}</code><br> 
    model = <code>{{model}}</code> 
</form> 
+0

Pranab- Ich bin mir dessen bewusst, aber hier in der Verwendung von MD-Autocomplete-Richtlinie. – user2919905

1

Ich glaube nicht, dass es derzeit eine einfache Möglichkeit gibt, es zu tun. Als hacky provisorische Lösung können Sie jedoch md-search-text-change verwenden, und wenn der Wert länger als X ist, können Sie ihn einfach mit den ersten X-Zeichen des Werts überschreiben.

Beispiel Stift here

Beachten Sie aber, um den Text zu einem Teil davon ändern, wird ein weiteren Anruf für das Text Änderungsereignis verursachen.

+0

Danke John, das dient meinem Bedürfnis. Danke für Ihre Hilfe. Ich hoffe, dass die MD-Entwickler diesen Haken in zukünftigen Versionen bereitstellen können. – user2919905

+0

Ich würde vorschlagen, ein Problem darüber auf GitHub zu öffnen. Das scheint kein großes Feature zu sein, vielleicht würde jemand aus der Community eine PR machen. –

1

Kombinieren Sie 'md-maxlength' und 'maxlength' zB. input type = "text" md-maxlength = "512" maxlength = "512"

1

Hier ist der Arbeitscode:

<md-autocomplete flex="" 
         required 
         ng-init="searchText=''" 
         md-input-name="autocompleteAddField" 
         md-input-minlength="2" 
         md-input-maxlength="10" 
         md-no-cache="true" 
         md-selected-item="newE.add" 
         md-search-text="searchText" 
         md-items="item in vm.queryAddressSearch(searchText)" 
         md-item-text="item.address" 
         md-require-match="" 
         md-floating-label="Address"> 
     <md-item-template> 
      <span md-highlight-text="searchText">{{item.address}}</span> 
     </md-item-template> 
     <div ng-messages="newEntityForm.autocompleteAddField.$error" ng-if="newEntityForm.autocompleteAddField.$touched"> 
      <div ng-message="required">You <b>must</b> have a user address.</div> 
      <div ng-message="md-require-match">Please select an existing address.</div> 
      <div ng-message="minlength">Your entry is not long enough.</div> 
      <div ng-message="maxlength">Your entry is too long.</div> 
     </div> 
     </md-autocomplete> 
0

von Extend John Smith Antwort, können Sie

md-search-text-change="searchText = searchText.substring(0,10)"