2012-11-22 28 views
9

संभव डुप्लिकेट:
How to get number of rows in <textarea >?jQuery के बिना एक HTML textarea में प्रदर्शित लाइनों की संख्या (न्यूलाइन नहीं)?

मैं एक textarea बस कल्पना निम्नलिखित कोड बॉक्स एक textarea है और केवल दो बार दर्ज है और मैं नीचे की तरह केवल 2 new line character साथ उस में 7 lines लिखते हैं, कुंजी दबाया जाता है।

A text box, text field or text entry box is a kind of widget used when building 
a graphical user interface (GUI). A text box purpose is to allow the user to 
input text information to be used by the program. 
User-interface guidelines recommend a single-line text box when only one line of 
input is required, and a multi-line text box only if more than one line of input 
may be required. 
Non-editable text boxes can serve the purpose of simply displaying text. 

कुछ और लाइनें लिख अगर अब textarea line countn हो जाने के बाद। मैं n के मान की गणना कैसे कर सकता हूं?

प्रश्न का उत्तर देने से पहले कृपया स्पष्ट रहें। मैं यह नहीं जानना चाहता कि इस तरह के मेरे पाठ में कितने new line characters हैं। How to get the number of lines in a textarea?

मैं के रूप में तरह माइक्रोसॉफ्ट वर्ड एक मार्ग से यह गिनती के रूप में लाइनों की संख्या की गणना करना चाहते।

कोई jQuery कृपया ...

+3

आपने क्या प्रयास किया है? (StackOverflow का उद्देश्य समस्याओं को हल करने में आपकी सहायता करना है, न कि आपके लिए अपना असाइनमेंट करना। आपको कम से कम समस्या को हल करने का प्रयास करना चाहिए।) – jdigital

+1

@jdigital मैं कई कीवर्ड के साथ Google में खोज करता हूं ... लेकिन कहां से शुरू करने के लिए कोई रास्ता नहीं मिला ... और कोड के बारे में मेरे लिए कुछ भी काम नहीं करता है ... – NazKazi

+3

[इस सवाल] का सबसे ऊपर जवाब नहीं है (http://stackoverflow.com/questions/1760629/how-to- अंक-संख्या-पंक्ति-इन-टेक्स्टरेरा) बस आप क्या चाहते हैं? –

उत्तर

3

आप इस बाहर की कोशिश कर सकते। मैंने अभी तक इसका परीक्षण नहीं किया है, लेकिन मुझे याद है कि यह ठीक काम करना चाहिए।

var lineHeight = document.getElementById("yourTextarea").style.lineHeight; 
var scrollHeight = document.getElementById("yourTextarea").scrollHeight; 
document.getElementById("yourTextarea").style.height = scrollHeight; // this is just for showing purposes 
var numLines = Math.floor(scrollHeight/lineHeight); 

यह मुझे लगता है कि यह सबसे आसान तरीका होना चाहिए।

संपादित

इसलिए यहाँ

जवाब है, यह है के रूप में सरल है: डी

पहले मेकअप shure कॉलम

के लिए पाठ क्षेत्र एक मूल्य देने के लिए और अब यह बाहर की जाँच करने के लिए =

<textarea id="mytext" cols="10" rows="12"> 
</textarea> 
<input type="button" value="Count Rows" onclick="countRows();"/> 
<script type="text/javascript"> 
function countRows() { 
    var stringLength = document.getElementById("mytext").value.length; 
    var count = Math.ceil(stringLength/document.getElementById("mytext").cols); 
    // just devide the absolute string length by the amount of horizontal place and ceil it 
    alert(count); 
} 
</script> 

अब यह वैसे ही काम करना चाहिए जैसा इसे करना चाहिए।

अद्यतन

आप भी सभी "नई लाइन" तत्वों या सिर्फ अंतिम वर्ण दूर करने के लिए यकीन है कि अगर यह एक "नई लाइन" लंबाई हो रही befor स्ट्रिंग में करने वाले हैं। इस तरह कोई अनचाहे अतिरिक्त लाइनों की गणना नहीं की जाएगी।

ALSO टेक्स्टबॉक्स की "चौड़ाई" सेट नहीं करना सुनिश्चित करें !! यह टेक्स्ट को "कोल्स" के मूल्य के आगे आगे बढ़ने का कारण बनता है। इस तरह "गिनती" मान आपको पंक्तियों की गिनती देगा यदि कॉल की मान की अधिकतम-पंक्ति-चौड़ाई के साथ होगा। इसलिए कोल्स विशेषता के साथ टेक्स्टबॉक्स की चौड़ाई निर्धारित करने का एकमात्र तरीका।

अद्यतन 2

मुझे लगता है कि अगर आप एक गैर गाड़ी रास्ता पीएचपी या jQuery का उपयोग कर के आसपास कोई रास्ता नहीं है चाहता हूँ।

दूसरा समाधान भी एक त्वरित और गंदा तरीका है। आपको एक तर्क को कोड करना होगा जो प्रत्येक शब्द को तब तक जांचता है जब यह लंबे समय तक हो तो दूर की चौड़ाई और अपर्याप्त स्थान की वजह से अगली पंक्ति में रखे गए शब्दों के लिए प्रत्येक पंक्ति को भी जांचें।

इसके लिए कुछ तार्किक कौशल की आवश्यकता होगी और निष्क्रियता के कारण मैं अब कोड नहीं लिखूंगा।

यदि आप चाहते हैं कि मैं एक पूर्ण जावास्क्रिप्ट, PHP या jQuery समाधान पोस्ट करता हूं, तो कृपया मुझे बताएं। (मुझे कोई कारण नहीं दिख रहा है कि इसके लिए jQuery का उपयोग क्यों न करें)

+0

मेरी 'रिक्त टेक्स्टरेरा' 12 पंक्तियों के साथ आता है ... इसलिए जब मैं 7 लाइनें लिखूंगा, तो यह मुझे वापस कर देगा ... – NazKazi

+1

मुझे एक और तरीका मिला है , मैं अभी इसका परीक्षण कर रहा हूं – Ace

+0

वहां आप मेरे दोस्त – Ace