बेशक, आप किस दृष्टिकोण का उपयोग करते हैं, यह इस बात पर निर्भर करता है कि आपका अंतिम लक्ष्य क्या है। यदि आप प्रपत्रों के साथ परिणाम सबमिट करना चाहते हैं तो मूल प्रपत्र तत्वों का उपयोग करने का मतलब है कि आपको सबमिट करने के लिए स्क्रिप्टिंग का उपयोग करने की आवश्यकता नहीं है। इसके अलावा, यदि पटकथा को बंद कर दिया जाता है, तो फ़ॉलबैक अभी भी फैंसी बढ़ने-सिकुड़ने के प्रभावों के बिना काम करता है। यदि आप एक से बाहर सादा पाठ प्राप्त करना चाहते हैं contenteditable तत्व आप हमेशा भी तरह पटकथा का उपयोग कर सकते node.textContent एचटीएमएल निकाल देते है कि उपयोगकर्ता इनपुट में डालने ब्राउज़रों।
यह संस्करण पिछले कुछ पदों पर थोड़े से परिशोधन के साथ मूल रूप तत्वों का उपयोग करता है।
यह सामग्री को भी सिकुड़ने की अनुमति देता है।
बेहतर नियंत्रण के लिए CSS के संयोजन में इसका उपयोग करें।
<html>
<textarea></textarea>
<br>
<input type="text">
<style>
textarea {
width: 300px;
min-height: 100px;
}
input {
min-width: 300px;
}
<script>
document.querySelectorAll('input[type="text"]').forEach(function(node) {
var minWidth = parseInt(getComputedStyle(node).minWidth) || node.clientWidth;
node.style.overflowX = 'auto'; // 'hidden'
node.onchange = node.oninput = function() {
node.style.width = minWidth + 'px';
node.style.width = node.scrollWidth + 'px';
};
});
आप <textarea> तत्वों के साथ कुछ इसी तरह का उपयोग कर सकते हैं
document.querySelectorAll('textarea').forEach(function(node) {
var minHeight = parseInt(getComputedStyle(node).minHeight) || node.clientHeight;
node.style.overflowY = 'auto';
node.onchange = node.oninput = function() {
node.style.height = minHeight + 'px';
node.style.height = node.scrollHeight + 'px';
};
});
यह क्रोम पर झिलमिलाहट नहीं करता है, परिणाम अन्य ब्राउज़रों पर भिन्न हो सकते हैं, इसलिए परीक्षण करें।