वैल () बनाम टेक्स्ट () टेक्स्टरी के लिए


106

मैं jQuery का उपयोग कर रहा हूं, और सोच रहा हूं कि क्या मुझे textarea की सामग्री को पढ़ने और अपडेट करने के लिए वैल () या टेक्स्ट () (या किसी अन्य विधि) का उपयोग करना चाहिए।

मैंने दोनों की कोशिश की है और मैं दोनों के साथ मुद्दों पर रहा हूं। जब मैं टेक्स्टरी को अपडेट करने के लिए टेक्स्ट () का उपयोग करता हूं, तो लाइन ब्रेक (\ n) काम नहीं करता है। जब मैं textarea सामग्री को पुनः प्राप्त करने के लिए वैल () का उपयोग करता हूं, तो पाठ बहुत लंबा होने पर छोटा हो जाता है।


इसका क्या मतलब है लाइन ब्रेक काम नहीं करता है?
काज

@kaz: पाठ एक ही पंक्ति पर रहता है।
क्रिस्टोफ

और कंसोल के डिबग आउटपुट में "टेक्स्ट ट्रंक हो जाता है" से आपका क्या मतलब है? वापसी मूल्य में ही? आसान होगा यदि आप एक jsfiddle प्रदान की ...
कॉन्स्टेंटिन Gro

@Connum: रिटर्न वैल्यू में। अभी jsfiddle की कोशिश कर रहा है ...
क्रिस्टोफ

1
मैं यहाँ पर पाठयक्रम पाठ के लिए google'ing द्वारा मिला। मैंने .val () के अंत में \ n \ n के एक जोड़े को जोड़कर अपनी समस्या को ठीक किया। अजीब लेकिन यह काम किया।
डारिन

जवाबों:


148

एक textarea का मान सेट / प्राप्त करने का सबसे अच्छा तरीका है .val(),.value विधि विधि है।

.text()की सामग्री प्राप्त करने के लिए आंतरिक .textContent(या .innerTextIE के लिए) विधि का उपयोग करता है <textarea>। निम्नलिखित परीक्षण मामले एक दूसरे से कैसे text()और किस तरह .val()संबंधित हैं:

var t = '<textarea>';
console.log($(t).text('test').val());             // Prints test
console.log($(t).val('too').text('test').val());  // Prints too
console.log($(t).val('too').text());              // Prints nothing
console.log($(t).text('test').val('too').val());  // Prints too

console.log($(t).text('test').val('too').text()); // Prints test

हमेशा उपयोग की जाने वाली value संपत्ति , .val()वर्तमान दृश्यमान मान को दिखाती है, जबकि text()रिटर्न रिटर्न गलत हो सकता है।


thx, अभी यह कोशिश कर रहा है। मैं वर्तमान में मेरे पास वैल () और ट्रंकेशन वाले मुद्दे को दोहराने में असमर्थ हूं। शायद मुझे गलत शक हो गया ...
क्रिस्टोफ़

5
उदाहरणों के लिए एक गुच्छा धन्यवाद। जाहिर है कि यह मेरा मुद्दा था, मैंने पाठ के साथ लिखा () और वैल के साथ पढ़ा ()।
क्रिस्टोफ

एक textarea के मूल्य को बदलने का उपयोग text()नहीं करने के बाद अब इसमें मैन्युअल रूप से कुछ भी बदलने के बाद काम नहीं करता है (जैसे एक चरित्र जोड़ना)
Jan

12

.val()हमेशा textareaतत्वों के साथ काम करता है।

.text()कभी-कभी काम करता है और अन्य बार विफल रहता है! यह विश्वसनीय नहीं है (Chrome 33 में परीक्षण किया गया)

जो सबसे अच्छा है वह .val()अन्य रूप तत्वों (जैसे input) के साथ मूल रूप से काम करता है जबकि .text()विफल रहता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.