1

Money Placeholder - Material DesignWie kann ich ein Platzhalter-Zeichen auf einem Eingabefeld halte mit kantigem Material Design

bei dem obigen Bild Suchen können Sie durch Hinzufügen eines Platzhalter-Attributs zu einem Material Design/Schräg Richtlinie ein Dollarzeichen ($) hinzufügen. Wenn Sie sich auf die Eingabe konzentrieren und Text hinzufügen, verschwindet das Dollarzeichen. Gibt es einen Weg in CSS oder anders, wo ich das Dollarzeichen behalten kann?

<md-input-container > 
    <label>Tens ($10.00's)</label> 
    <input name="tens" ng-model="data.tens" placeholder="$"> 
    </md-input-container> 
+0

haben sie versucht, etwas außerhalb des Eingangs das Dollarzeichen setzen? Entweder das oder mach es zu einem 'ng-Modell', aber das ist wahrscheinlich nicht die beste Idee. –

+0

Das ist das normale Verhalten für einen Platzhalter. Vielleicht suchst du eine Maske. – marcosspn

+1

Ich denke, diese Antwort erklärt, warum Sie das nicht können und warum sollten Sie nicht: http://stackoverflow.com/questions/29817834/how-do-i-add-permanent-place-holder-inside-in- Input-Filed – oguzhan00

Antwort

0

Vielleicht können Sie versuchen, ng-change, fügen ng-change = "change()" zur Eingabe

$scope.change = function() { 
    if ($scope.data.tens === "$") { 
     $scope.data.tens = ""; 
    } 
    else if (!$scope.data.tens.startsWith('$')) { 
     $scope.data.tens = '$' + $scope.data.tens; 
    } 
}; 
0

Je nachdem, wie Sie mit Ihrem ng-model Sie das machen können Dollarzeichen ein Teil davon - nur sicherstellen, dass der Benutzer das Zeichen nicht löscht.

<input name="tens" ng-model="data.tens"> 

einen Beobachter zu Zehn hinzufügen

$scope.$watch('tens', function (newValue, oldValue) { 
     if(newValue.length ==0){ 
     $scope.tens = $; 
     } 
}); 
+0

Ich bekomme einen Fehler, der sagt, "kann Eigenschaft 'Länge' von undefined nicht lesen" –

+0

@CodedContainer, was bedeutet, dass newValue wahrscheinlich Null ist. Beginnen Zehner mit einem Wert? Instanziieren Sie es als eine leere Zeichenfolge –

+0

Ich möchte den Wert nicht als eine leere Zeichenfolge starten, weil ich möchte, dass der Benutzer weiß, dass die Eingabe als ein monetärer Wert hinzugefügt werden soll. –

0

Während viele Menschen mit Masken oder Javascript vorgeschlagen haben, wenn das, was Sie suchen eine Platzhalter -ähnlichen Option ist, werde ich auch hinzufügen dass Sie CSS verwenden können, um das Gleiche zu tun.

CSS:

.dollar-sign-icon 
{ 
    position: relative; /* adjust top and right to fit context */ 
} 

.dollar-input 
{ 
    padding-left: 30px; 
} 

HTML:

<md-input-container> 
    <label>Tens ($10.00's)</label> 
    <i class="dollar-sign-icon">$</i> 
    <input class="dollar-input" name="tens" ng-model="data.tens" placeholder="$"> 
</md-input-container>