Chcę ustawić wartość domyślną dla mojego HTML <textarea>
. Czytam z materiału, że aby dodać wartość domyślną, musisz zrobić coś takiego <textarea>This is default text</textarea>
. Zrobiłem to, ale to nie działa. Co należy zrobić?
Chcę ustawić wartość domyślną dla mojego HTML <textarea>
. Czytam z materiału, że aby dodać wartość domyślną, musisz zrobić coś takiego <textarea>This is default text</textarea>
. Zrobiłem to, ale to nie działa. Co należy zrobić?
Odpowiedzi:
Oto mój przykład jsFiddle . to działa dobrze:
<textarea name='awesome'>Default value</textarea>
Możesz użyć atrybutu zastępczego , który nie dodaje wartości domyślnej, ale może być tym, czego szukasz:
<textarea placeholder="this text will show in the textarea"></textarea>
Sprawdź to tutaj - http://jsfiddle.net/8DzCE/949/
Ważna uwaga (jak zasugerował Jon Brave w komentarzach) :
Atrybut zastępczy nie ustawia wartości pola tekstowego. Raczej „Atrybut zastępczy reprezentuje krótką wskazówkę (słowo lub krótką frazę), która ma pomóc użytkownikowi we wprowadzaniu danych, gdy formant nie ma żadnej wartości” [i znika, gdy tylko użytkownik kliknie obszar tekstowy]. Nigdy nie będzie działać jako „wartość domyślna” dla kontroli. Jeśli chcesz, musisz umieścić żądany tekst w polu Oto aktualna wartość domyślna, tak jak w przypadku innych odpowiedzi tutaj
placeholder
nie ustawia wartości a textarea
. Raczej „Atrybut zastępczy reprezentuje krótką wskazówkę (słowo lub krótką frazę), która ma pomóc użytkownikowi we wprowadzaniu danych, gdy formant nie ma żadnej wartości” [i znika, gdy tylko użytkownik kliknie obszar tekstowy]. Nigdy nie będzie działać jako „wartość domyślna” dla kontroli. Jeśli chcesz, musisz umieścić żądany tekst wewnątrz <textarea>Here is the actual default value</textarea>
, zgodnie z innymi odpowiedziami tutaj.
Jeśli chcesz przenieść informacje z bazy danych do znacznika textarea do edycji: Znacznik wejściowy nie wyświetla danych, które zajmują kilka wierszy: wiersze nie działają, wprowadzanie znaczników to jeden wiersz.
<!--input class="article-input" id="article-input" type="text" rows="5" value="{{article}}" /-->
Tag textarea nie ma wartości , ale działa dobrze z kierownicą
<textarea class="article-input" id="article-input" type="text" rows="9" >{{article}}</textarea>
Na wszelki wypadek, jeśli używasz Angular.js w swoim projekcie (tak jak ja) i masz dla siebie ng-model
zestaw <textarea>
, ustawiając domyślną wartość wewnątrz:
<textarea ng-model='foo'>Some default value</textarea>
...nie będzie działać!
Musisz ustawić wartość domyślną na pola tekstowe ng-model
w odpowiednim kontrolerze lub użyć ng-init
.
Przykład 1 (użycie ng-init
):
Przykład 2 (bez użycia ng-init
):
Kilka uwag i wyjaśnień:
placeholder=''
wstawia tekst, ale jest wyszarzony (w formacie podpowiedzi), a po kliknięciu pola tekst zostaje zastąpiony pustym polem tekstowym.
value=''
nie jest <textarea>
atrybutem i działa tylko z <input>
tagami, tj. <input type='text'>
itd. Nie wiem, dlaczego twórcy HTML5 postanowili tego nie uwzględniać, ale na razie tak jest.
Najlepsza metoda wstawiania tekstu do <textarea>
elementów została tutaj poprawnie opisana jako: <textarea> Desired text to be inserted into the field upon page load </textarea>
Gdy użytkownik kliknie pole, może edytować tekst i pozostaje on w polu (w przeciwieństwie do placeholder=''
).
<textarea>
i </textarea>
, nie możesz go użyć, placeholder=''
ponieważ zostanie on zastąpiony wstawionym tekstem.Ponadto działało to dla mnie bardzo dobrze:
<textarea class="form-control" rows="3" name="msg" placeholder="Your message here." onfocus='this.select()'>
<?php if (isset($_POST['encode'])) { echo htmlspecialchars($_POST['msg']);} ?>
</textarea>
W tym przypadku $ _POST ['encode'] pochodzi z tego:
<input class="input_bottom btn btn-default" type="submit" name="encode" value="Encode">
Kod PHP został wstawiony między tagi i.
Symbol zastępczy nie może ustawić wartości domyślnej dla pola tekstowego. Możesz użyć
<textarea rows="10" cols="55" name="description"> /*Enter default value here to display content</textarea>
Jest to znacznik, jeśli używasz go do połączenia z bazą danych. Możesz użyć innej składni, jeśli używasz innych języków niż php.
na przykład:
<textarea rows="10" cols="55" name="description" required><?php echo $description; ?></textarea>
wymagane polecenie minimalizuje wysiłek potrzebny do sprawdzenia pustych pól za pomocą php.
Możesz użyć this.innerHTML.
<textarea name="message" rows = "10" cols = "100" onfocus="this.innerHTML=''"> Enter your message here... </textarea>
Gdy obszar tekstowy jest skupiony, po prostu sprawia, że innerHTML obszaru tekstowego jest pustym ciągiem.
Pamiętaj, że jeśli dokonałeś zmian w obszarze tekstowym, po jego renderowaniu; Otrzymasz zaktualizowaną wartość zamiast wartości zainicjowanej.
<!doctype html>
<html lang="en">
<head>
<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script>
$(function () {
$('#btnShow').click(function () {
alert('text:' + $('#addressFieldName').text() + '\n value:' + $('#addressFieldName').val());
});
});
function updateAddress() {
$('#addressFieldName').val('District: Peshawar \n');
}
</script>
</head>
<body>
<?php
$address = "School: GCMHSS NO.1\nTehsil: ,\nDistrict: Haripur";
?>
<textarea id="addressFieldName" rows="4" cols="40" tabindex="5" ><?php echo $address; ?></textarea>
<?php echo '<script type="text/javascript">updateAddress();</script>'; ?>
<input type="button" id="btnShow" value='show' />
</body>
</html>
Jak widać, wartość pola tekstowego będzie inna niż tekst pomiędzy otwierającym i zamykającym znacznikiem pola tekstowego dotyczącego obaw.
Możesz także dodać atrybut „wartość” i ustawić go w taki sposób:
<textarea value="your value"> </textarea>