2013-10-01 3 views
6

मैं पंक्तियों की विभिन्न संख्याओं के साथ, JQuery मोबाइल के साथ गतिशील रूप से टेक्स्टरेरा उत्पन्न करना चाहता हूं। मैं इसके लिए नॉकआउट का उपयोग करने का इरादा रख रहा था, rows विशेषता के साथ डेटा-बाइंड।JQuery मोबाइल textarea: यह 'पंक्तियों' विशेषता का उपयोग कैसे करता है?

उदा। यहाँ: https://developer.mozilla.org/en-US/docs/Web/HTML/Element/textarea, और यहां तक ​​कि JQuery मोबाइल के अपने दस्तावेज में शामिल किया गया है: http://view.jquerymobile.com/1.3.1/dist/demos/widgets/textinputs/index.html#Textareahttp://jsfiddle.net/j7b9A/2/

<label for="textarea-1">5 rows:</label> 
<textarea rows="5" name="textarea-1" id="textarea-1"></textarea> 

<label for="textarea-2">10 rows:</label> 
<textarea rows="10" name="textarea-2" id="textarea-2"></textarea> 

हालांकि, JQuery मोबाइल rows विशेषता है, जो अच्छी तरह से प्रलेखित है की अनदेखी करने लगती है।

यहां एक टिप्पणी में कहा गया है कि ऊंचाई और चौड़ाई निर्धारित करना rows विशेषता को ओवरराइड करता है: https://stackoverflow.com/a/7194692/1061602। ऐसा लगता है कि ऐसा इसलिए है क्योंकि टेक्स्टरीए विस्तार करते समय JQuery मोबाइल एक संक्रमण कर रहा है। तो पंक्तियों विशेषता हमेशा पूरी तरह से ओवरराइड किया जा रहा है?

एक और इसी तरह के सवाल यहाँ है: How to make text area to be height of 10 rows fixed?, लेकिन यह मेरी मदद नहीं करता है के रूप में मैं सभी textareas की ऊंचाई तय करने के लिए नहीं करना चाहते हैं, मैं उन्हें, आप परिवर्तित करना चाहेंगे के रूप में वे सामान्य रूप से rows विशेषता का उपयोग कर सकते हैं होगा।

इसके अलावा मैं क्या देखा है, जो मैं व्याख्या नहीं कर सकते, कि मेरे अपने कोड में, एक दुष्ट style="height: 184px;" मेरी textareas में से एक है, लेकिन नहीं एक और करने के लिए जोड़ा जाता है। अन्य इस जवाब में हाइलाइट किए गए 50px की मानक शैली का उपयोग करता है: jQuery Mobile and textarea rows - ऐसा लगता है कि कुछ और चल रहा है, लेकिन मैं इसे अभी तक एक साधारण पहेली में पुन: पेश नहीं कर सकता।

मैंने JQuery मोबाइल स्रोत पर एक त्वरित नज़र डाली है, लेकिन मुझे rows विशेषता का उपयोग नहीं किया जा रहा है?

बाध्य JQuery मोबाइल टेक्स्टरेस की एक श्रृंखला के लिए पंक्ति ऊंचाई की एक श्रृंखला निर्दिष्ट करने का सबसे अच्छा तरीका क्या होगा?

+0

knockoutjs की क्या भूमिका है? – Damien

+0

मैं knockoutjs उपयोग कर रहा हूँ इन पाठ क्षेत्र तत्वों में पाठ बाध्य करने के लिए है, इसलिए करने के लिए भी डेटा-बाँध = उम्मीद कर रही थी "attr: { 'पंक्तियों': पंक्तियाँ}" –

+3

जांच इस http://jsfiddle.net/Palestinian/XXEfV/ – Omar

उत्तर

9

jQM जवाबदेही और स्टाइल प्रयोजनों के लिए विभिन्न वर्गों जोड़कर textarea को बढ़ाता है। rows ऊंचाई बनाए रखने का सबसे तेज़ और आसान तरीका जेक्यूएम कक्षा को ओवरराइड करना है।

Demo

सीएसएस समाधान:

.custom_class { 
    height: auto !important; /* !important is used to force override. */ 
} 

जे एस समाधान - पाठ क्षेत्र के बाद की स्थापना की ऊंचाई बढ़ जाती है।

setTimeout(function() { 
    $('textarea').css({ 
    'height': 'auto' 
    }); 
}, 0); 
2

अधिक क्षेत्र में टेक्स्ट एरिया सामग्री ऑटो स्क्रॉल। जितनी चाहें उतनी ऊंचाई। जोड़े सीएसएस

textarea.size{max-height:30px;} 

<textarea name="textarea-1" id="textarea-1" style="max-height:30px;"> 
4

JQuery मोबाइल तो डिजाइन द्वारा यह स्थान ले जब तक आप इसकी आवश्यकता नहीं हो रहा है, प्रतिक्रिया देने के लिए करना है। यदि आप टेक्स्टरेरा में डेटा जोड़ते हैं, या तो इनपुट के माध्यम से या कोड के माध्यम से, आप देख सकते हैं कि यह आवश्यकतानुसार बढ़ता है।

  1. विधि उमर उल्लेख किया है,, JQM भूमिका बंद करने के लिए है जो के रूप में आप JSFiddle उदाहरण में किया था का उपयोग करें:

    आपको लगता है कि आकार को ओवरराइड करना चाहते हैं जब यह खाली है, तो आप दो विकल्प हैं।

  2. दूसरा डिफ़ॉल्ट वर्ग, as seen in this answer ओवरराइड करना है।

11

आप सभी की जरूरत है ... इस

textarea.ui-input-text { height: inherit !important} 
+0

सर्वश्रेष्ठ उत्तर यहाँ हूँ; धन्यवाद! –

+0

मेरे लिए भी काम करता है। धन्यवाद –

+0

हाँ यह समाधान बहुत अच्छा काम करता है! अन्य समाधान मेरे लिए काम नहीं करता है, एक खाली textarea में टाइप करने के बाद ऊंचाई 1 पंक्ति फिर से घट जाती है। – Guus

4

जोड़ने मैं एक ही समस्या थी और मैं अंत में एक समाधान मिल गया। आप, पाठ क्षेत्र तत्व में 'डेटा-autogrow = "false"' सेट उसके बाद आप सेट कर सकते पंक्तियों का श्रेय या सीएसएस में ऊंचाई कर सकते हैं। data-autogrow="false"
इस तरह:: यह jQuery मोबाइल 1.4.0+

+0

धन्यवाद, यह काम करता है! फ़ायरफ़ॉक्स और क्रोम में परीक्षण किया। –

1

आप इस का उपयोग कर सकते हैं में काम करता है करता है <textarea rows="10" name="textarea-2" id="textarea-2" data-autogrow="false"></textarea>

संबंधित मुद्दे