ฉันต้องการที่จะตั้งค่าเริ่มต้นสำหรับ <textarea>
HTML <textarea>This is default text</textarea>
ผมอ่านจากวัสดุที่จะเพิ่มค่าเริ่มต้นที่คุณต้องทำสิ่งที่ชอบ ฉันทำอย่างนั้น แต่มันไม่ทำงาน สิ่งที่ถูกต้องทำคืออะไร?
ฉันต้องการที่จะตั้งค่าเริ่มต้นสำหรับ <textarea>
HTML <textarea>This is default text</textarea>
ผมอ่านจากวัสดุที่จะเพิ่มค่าเริ่มต้นที่คุณต้องทำสิ่งที่ชอบ ฉันทำอย่างนั้น แต่มันไม่ทำงาน สิ่งที่ถูกต้องทำคืออะไร?
คำตอบ:
นี่คือตัวอย่างjsFiddleของฉัน มันใช้งานได้ดี:
<textarea name='awesome'>Default value</textarea>
คุณสามารถใช้ตัวยึด Attributeซึ่งไม่เพิ่มค่าเริ่มต้นแต่อาจจะเป็นสิ่งที่คุณกำลังมองหา:
<textarea placeholder="this text will show in the textarea"></textarea>
ลองดูที่นี่ - http://jsfiddle.net/8DzCE/949/
หมายเหตุสำคัญ (ตามที่ Jon Brave แนะนำในความคิดเห็น) :
แอตทริบิวต์ตัวยึดไม่ได้ตั้งค่าของ textarea ค่อนข้าง "แอตทริบิวต์ตัวยึดตำแหน่งเป็นคำใบ้สั้น ๆ (คำหรือวลีสั้น ๆ ) ที่มีวัตถุประสงค์เพื่อช่วยเหลือผู้ใช้ในการป้อนข้อมูลเมื่อตัวควบคุมไม่มีค่า" [และมันจะหายไปทันทีที่ผู้ใช้คลิกเข้าไปใน textarea] มันจะไม่ทำหน้าที่เป็น "ค่าเริ่มต้น" สำหรับการควบคุม หากคุณต้องการคุณจะต้องใส่ข้อความที่ต้องการในช่องนี่คือค่าเริ่มต้นจริงตามคำตอบอื่น ๆ ที่นี่
placeholder
ไม่ได้ตั้งค่าtextarea
ของ ค่อนข้าง "แอตทริบิวต์ตัวยึดตำแหน่งเป็นคำใบ้สั้น ๆ (คำหรือวลีสั้น ๆ ) ที่มีวัตถุประสงค์เพื่อช่วยเหลือผู้ใช้ในการป้อนข้อมูลเมื่อตัวควบคุมไม่มีค่า" [และมันจะหายไปทันทีที่ผู้ใช้คลิกเข้าไปใน textarea] มันจะไม่ทำหน้าที่เป็น "ค่าเริ่มต้น" สำหรับการควบคุม หากคุณต้องการคุณต้องใส่ข้อความที่ต้องการไว้ใน<textarea>Here is the actual default value</textarea>
คำตอบอื่น ๆ ที่นี่
หากคุณต้องการนำข้อมูลจากฐานข้อมูลไปยังแท็ก textarea เพื่อแก้ไข: แท็กอินพุตไม่แสดงข้อมูลที่มีหลายบรรทัด: แถวไม่ทำงาน, อินพุตแท็กคือหนึ่งบรรทัด
<!--input class="article-input" id="article-input" type="text" rows="5" value="{{article}}" /-->
แท็ก textarea ไม่มีค่าแต่ทำงานได้ดีกับ handlebars
<textarea class="article-input" id="article-input" type="text" rows="9" >{{article}}</textarea>
ในกรณีที่คุณใช้Angular.jsในโครงการของคุณ (อย่างที่ฉันเป็น) และมีng-model
ชุดสำหรับคุณ<textarea>
ให้ตั้งค่าเริ่มต้นเหมือนข้างใน:
<textarea ng-model='foo'>Some default value</textarea>
...จะไม่ทำงาน!
คุณจำเป็นต้องตั้งค่าเริ่มต้นไปยังพื้นที่ข้อความในตัวควบคุมที่เกี่ยวข้องหรือการใช้งานng-model
ng-init
ตัวอย่างที่ 1 (โดยใช้ng-init
):
ตัวอย่างที่ 2 (ไม่ใช้ng-init
):
หมายเหตุเล็กน้อยและคำอธิบาย:
placeholder=''
แทรกข้อความของคุณ แต่จะเป็นสีเทา (ในรูปแบบสไตล์เคล็ดลับเครื่องมือ) และเมื่อคลิกที่ฟิลด์ฟิลด์ข้อความของคุณจะถูกแทนที่ด้วยฟิลด์ข้อความว่างเปล่า
value=''
ไม่ใช่<textarea>
คุณลักษณะและใช้งานได้กับ<input>
แท็กเท่านั้นเช่น<input type='text'>
ฉันไม่รู้ว่าทำไมผู้สร้าง HTML5 ตัดสินใจที่จะไม่รวมสิ่งนั้น แต่นั่นเป็นวิธีที่ใช้กันในตอนนี้
วิธีที่ดีที่สุดสำหรับการแทรกข้อความลงใน<textarea>
องค์ประกอบได้ถูกกำหนดไว้อย่างถูกต้องที่นี่<textarea> Desired text to be inserted into the field upon page load </textarea>
เมื่อ: เมื่อผู้ใช้คลิกที่ฟิลด์พวกเขาสามารถแก้ไขข้อความและยังคงอยู่ในฟิลด์ (ไม่เหมือนplaceholder=''
)
<textarea>
และ</textarea>
แท็กคุณจะไม่สามารถใช้งานได้placeholder=''
เนื่องจากข้อความที่คุณแทรกจะถูกเขียนทับเมื่อฉันทำอะไรแบบนี้มันได้ผลกับฉัน:
<textarea name="test" rows="4" cols="6">My Text</textarea>
นอกจากนี้ยังใช้งานได้ดีมากสำหรับฉัน:
<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>
ในกรณีนี้ $ _POST ['encode'] มาจากสิ่งนี้:
<input class="input_bottom btn btn-default" type="submit" name="encode" value="Encode">
รหัส PHP ถูกแทรกระหว่างและแท็ก
ตัวยึดตำแหน่งไม่สามารถตั้งค่าเริ่มต้นสำหรับพื้นที่ข้อความ คุณสามารถใช้ได้
<textarea rows="10" cols="55" name="description"> /*Enter default value here to display content</textarea>
นี่คือแท็กถ้าคุณใช้สำหรับการเชื่อมต่อฐานข้อมูล คุณอาจใช้ไวยากรณ์ที่แตกต่างกันหากคุณใช้ภาษาอื่นที่ไม่ใช่ php สำหรับ php:
เช่น:
<textarea rows="10" cols="55" name="description" required><?php echo $description; ?></textarea>
คำสั่งที่ต้องการลดความพยายามในการตรวจสอบช่องว่างโดยใช้ php
คุณสามารถใช้ this.innerHTML
<textarea name="message" rows = "10" cols = "100" onfocus="this.innerHTML=''"> Enter your message here... </textarea>
เมื่อมีการเน้นพื้นที่ข้อความโดยทั่วไปแล้วมันจะทำให้ innerHTML ของ textarea เป็นสตริงว่าง
โปรดทราบว่าหากคุณทำการเปลี่ยนแปลง textarea หลังจากที่มันได้แสดงผล; คุณจะได้รับค่าที่อัพเดทแทนค่าเริ่มต้น
<!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>
ในขณะที่คุณสามารถเห็นคุณค่าของ textarea จะแตกต่างจากข้อความระหว่างแท็กเปิดและปิดของ textarea ที่เกี่ยวข้อง
คุณยังสามารถเพิ่มแอตทริบิวต์ "value" และตั้งค่าเพื่อให้เป็นดังนี้:
<textarea value="your value"> </textarea>