453 Stimmen

Wie fügt man einen Standardwert für das HTML-<textarea> hinzu?

Ich möchte einen Standardwert für mein HTML </code> setzen. Ich habe aus einem Material gelesen, dass um einen Standardwert hinzuzufügen, müssen Sie etwas in der Art von <code><textarea>Dies ist Standardtext tun. Das habe ich gemacht, aber es funktioniert nicht. Was ist das richtige Vorgehen?

1 Stimmen

Die Art und Weise, wie du zeigst, ist wie es funktionieren soll. Zeige deinen HTML-Code, wenn es nicht funktioniert.

0 Stimmen

Zeigen Sie bitte Ihren HTML-Code...

2 Stimmen

Die Antworten passen zur Frage ohne den darin vermerkten Codeversuch. Behandeln wir die Frage ohne diesen Versuch, sodass die Frage nicht den "kein Code" oder "kann nicht mehr reproduziert werden" Schließgründen unterliegt.

756voto

Andrew Jackman Punkte 13353

Hier ist mein jsFiddle Beispiel. Das funktioniert gut:

Standardwert

6 Stimmen

.NET Core Entwickler, die asp-for verwenden, müssen einen Konstruktor in der Modelklasse verwenden, um den Standardwert festzulegen, da diese Antwort ihnen nicht helfen wird.

0 Stimmen

@ShadiNamrouti Während das sicherlich wahr ist, handelt es sich hierbei nicht um eine Frage, die sich an .Net Core richtet. Diese Frage stammt tatsächlich schon von ein paar Jahren vor .Net Core.

1 Stimmen

Ich bin genau hierher gekommen, weil die Antwort von Andrew Jackman NICHT funktioniert hat. Shadi Namrouti hat erklärt, warum: Wenn Sie eine Asp.Net Core Razor-Seite haben und "asp-for" verwenden ... müssen Sie den Standardwert im Konstruktor Ihres Modells festlegen. Vielen Dank, Shadi!

110voto

bhavya_w Punkte 7762

Du kannst das Platzhalter Attribut verwenden, das keinen Standardwert hinzufügt, aber das sein könnte, wonach du suchst :

Probier es hier aus - http://jsfiddle.net/8DzCE/949/ Bildbeschreibung hier eingeben

Wichtiger Hinweis (Wie von Jon Brave in den Kommentaren vorgeschlagen) :

Das Platzhalterattribut setzt nicht den Wert eines Textfeldes. Stattdessen "Das Platzhalterattribut repräsentiert einen kurzen Hinweis (ein Wort oder kurzen Satz), der dem Benutzer bei der Dateneingabe helfen soll, wenn das Steuerelement keinen Wert hat" [und verschwindet, sobald der Benutzer in das Textfeld klickt]. Es wird niemals als "Standardwert" für das Steuerelement fungieren. Wenn du das möchtest, musst du den gewünschten Text im Textfeld platzieren. Hier ist der eigentliche Standardwert, wie es in anderen Antworten hier beschrieben ist.

20 Stimmen

Du solltest klarstellen, dass placeholder nicht den Wert eines textarea setzt. Vielmehr "Das Platzhalterattribut stellt einen kurzen Hinweis (ein Wort oder kurzer Satz) dar, der dazu gedacht ist, dem Benutzer bei der Dateneingabe zu helfen, wenn das Steuerelement keinen Wert hat" [und es verschwindet, sobald der Benutzer in das Textfeld klickt]. Es wird niemals als "der Standardwert" für das Steuerelement fungieren. Wenn du das möchtest, musst du den gewünschten Text innerhalb des Hier ist der tatsächliche Standardwert setzen, wie in anderen Antworten hier.

13 Stimmen

Dies ist tatsächlich eine sehr gefährliche Lösung. Bitte verwechseln Sie niemals Platzhalter mit Standardwert.

2 Stimmen

@Qwerty - Ja, wir sollten den Platzhalter nicht mit dem Standardwert verwechseln. Aber gefährlich....Kannst du ein Beispiel / Fall nennen, wo und wie es gefährlich sein kann ( in der Lage oder wahrscheinlich ist, Schaden oder Verletzungen zu verursachen ) ?

28voto

user2519992 Punkte 359

Wenn Sie Informationen aus einer Datenbank in ein Textarea-Tag zum Bearbeiten einfügen möchten: Das Input-Tag zeigt Daten nicht an, die mehrere Zeilen belegen: Zeilen funktioniert nicht, das Input-Tag ist nur eine Zeile.

Das Textarea-Tag hat keinen Wert, funktioniert aber gut mit Handlebars

{{article}}

0 Stimmen

Dies ist Winkelig

16voto

Rahul Desai Punkte 14518

Falls Sie Angular.js in Ihrem Projekt verwenden (so wie ich) und ein ng-model für Ihr </code> festgelegt haben, setzen Sie den Standardwert einfach so:</p> <pre><code><textarea ng-model='foo'>Ein Standardwert

...wird nicht funktionieren!

Sie müssen den Standardwert für das ng-model des Textbereichs im entsprechenden Controller festlegen oder ng-init verwenden.

Beispiel 1 (mit ng-init):

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', [ '$scope', function($scope){
  // Implementierung Ihres Controllers hier
}]);

    JS Bin

Beispiel 2 (ohne Verwendung von ng-init):

var myApp = angular.module('myApp',[]);

myApp.controller('MyCtrl', [ '$scope', function($scope){
  $scope.foo = 'Ein Standardwert';
}]);

    JS Bin

1 Stimmen

Ay found this stackoverflow.com/a/25391822/2199525 - machte die Dinge noch klarer.

12voto

twknab Punkte 1517

Einige Anmerkungen und Klarstellungen:

  • placeholder='' fügt Ihren Text ein, aber er ist ausgegraut (im Tool-Tipp-Stil) und im Moment, in dem das Feld angeklickt wird, wird Ihr Text durch ein leeres Textfeld ersetzt.

  • value='' ist kein </code>-Attribut und funktioniert nur für <code><input></code>-Tags, d.h. <code><input type='text'></code>, usw. Ich weiß nicht, warum die Schöpfer von HTML5 beschlossen haben, das nicht zu integrieren, aber so ist es im Moment.</p></li> <li><p>Die beste Methode, um Text in <code><textarea></code>-Elemente einzufügen, wurde hier korrekt beschrieben: <code><textarea> Gewünschter Text, der beim Laden der Seite in das Feld eingefügt werden soll Wenn der Benutzer auf das Feld klickt, kann er den Text bearbeiten und er bleibt im Feld (im Gegensatz zu placeholder='').

  • Hinweis: Wenn Sie Text zwischen die </code> und <code> Tags einfügen, können Sie placeholder='' nicht verwenden, da es durch Ihren eingefügten Text überschrieben wird.

1 Stimmen

</code> unterstützt mehrzeilige Inhalte, die schwer in das <code>value</code> Attribut zu zwängen wären :)</x-turndown>

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X