क्यों textarea रहस्यमय सफेद रिक्त स्थान से भरा है?


292

मेरे पास इस तरह से एक सरल पाठ क्षेत्र है:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
    <?php if($siteLink_val) echo $siteLink_val; ?> 
</textarea>

मुझे इस टेक्सटेरिया में अतिरिक्त सफेद जगह मिलती रहती है । जब मैं इसमें टैब करता हूं तो मेरा कर्सर टेक्सटेरिया के बीच में होता है और शुरुआत में नहीं? स्पष्टीकरण क्या है?

जवाबों:


484

अपने कोड को बारीकी से देखें। इसमें, पहले से ही तीन लाइन ब्रेक हैं, और पहले एक टन सफेद स्थान है </textarea>। उन लोगों को पहले हटा दें ताकि टैग के बीच में कोई भी लाइन ब्रेक न हो। यह पहले से ही चाल चल सकता है।


4
@ user79685 आपका स्वागत है। ऊपर मेरी नई टिप्पणी पढ़ें, मैं वास्तव में आपका उपहास नहीं कर रहा था। कम से कम
मतलबी

9
मम, मैं इससे सहमत नहीं हूं। मैं ऑनलाइन चर्चाओं में चातुर्य और शिष्टाचार के लिए बहुत अधिक हूं, और मैं एसओ पर समग्र रूप से बहुत दोस्ताना स्वर का आनंद लेता हूं। दूसरी ओर, किसी को नेट पर चलते समय त्वचा को थोड़ा विकसित करने की आवश्यकता होती है, यह सच है।
पेका

2
बहुत अच्छा। मुझे इस समस्या का भी सामना करना पड़ रहा था और पाठ को ट्रिम करने से लेकर 'टेक्स्ट-इंडेक्स' संपत्ति (css का उपयोग करके) :-D :-D तक हर दूसरी कोशिश की। (मैं कितना बेवकूफ़ हूँ)। समस्या उत्पन्न हुई क्योंकि मैंने html में कोड को इंडेंट कर दिया था: -! ... धन्यवाद, आपके उत्तर से मुझे भी मदद मिली .. :-)
गौरव शर्मा

3
इसके अलावा, valueटैग के अंदर पाठ जोड़ने के बजाय विशेषता का उपयोग करें।
जोओ क्यून्हा

2
एक वृद्ध लेकिन एक गुडी। इससे मुझे आज मदद मिली। @Pekka तुम कमाल हो!
वर्डमैन

73

खैर, के बीच सब कुछ <textarea>और </textarea>अपने textarea बॉक्स के लिए डिफ़ॉल्ट मान के रूप में उपयोग किया जाता है। वहां आपके उदाहरण में कुछ व्हाट्सएप है। उस सब को खत्म करने की कोशिश करो।


4
बहुत बहुत धन्यवाद। मुझे पता ही नहीं चला कि बीच में सब कुछ डिफ़ॉल्ट है। मैंने शीर्ष पर लड़के को चुना क्योंकि उसने पहले इसका जवाब दिया हालांकि उसने मेरा उपहास किया। लोगों के लिए बाहर चिपके रहने के लिए धन्यवाद।
20

2
यह आसान है। आपका बहुत बहुत धन्यवाद!
सर्जियो बेलेवस्कीज

56

अपने PHP टैग्स को अपने टैग के ठीक बाद और पहले खोलें (बंद करें!) textarea:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php
  if($siteLink_val) echo $siteLink_val;
?></textarea>

4
यह इन मामलों में इंडेंटेशन रखने का एक चतुर तरीका है। धन्यवाद!
सेबस्टियन

इसने आखिरकार मेरा मुद्दा तय कर दिया। बहुत बहुत धन्यवाद बार्ट
स्टीफन कैनेडी

32

संक्षेप में: <textarea>तुरंत उसी लाइन पर बंद होना चाहिए जहां यह शुरू हुआ था।


सामान्य अभ्यास: यह कोड-विराम और कोड में इंडेंटेशन के लिए उपयोग किए गए रिक्त स्थान जोड़ देगा।

<textarea id="sitelink" name="sitelink">
</textarea>

सही अभ्यास

<textarea id="sitelink" name="sitelink"></textarea>

मेरी समस्या का समाधान किया।
S.M_Emamian

यह मेरे लिए भी सही समाधान था
शेल्डन आर।

मेरी समस्या का हल किया, महान समाधान। धन्यवाद
Husnain शब्बीर

26

मूल रूप से यह होना चाहिए

<textarea>something here with no spaces in the begining</textarea>

अगर कुछ पूर्वनिर्धारित रिक्त स्थान हैं, तो नीचे दिए गए कोड स्वरूपण के कारण कह सकते हैं

<textarea>.......
....some_variable
</textarea>

डॉट्स द्वारा दिखाए गए स्थान प्रत्येक सबमिट पर जुड़ते रहते हैं।


यह एक पुरानी "चाल" है, यहां तक ​​कि कभी-कभी भूल भी जाती है। हमारे पास पहले से ही IE6 / 7 .. +1
JonSnow

मेरा दिन बचा लिया। धन्यवाद!
रिबेल रिबेरो

यह ठीक काम करता है, लेकिन यह वास्तव में मज़ेदार है। इस अजीब बग पर कोई स्पष्टीकरण?
अमिनु कानो

11

Textarea खोलने और समापन टैग के बीच किसी भी स्थान को व्हाट्सएप माना जाएगा। तो आपके उपरोक्त कोड के लिए, सही तरीका होगा:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo $siteLink_val; ?></textarea>

7

एक अन्य कार्य जावास्क्रिप्ट का उपयोग करना होगा:

//jquery
$('textarea#someid').html($('textarea#someid').html().trim());

//without jquery
document.getElementById('someid').innerHTML = document.getElementById('someid').innerHTML.trim();

यह जो मैंने किया है। कोड में व्हाइट-स्पेस और लाइन-ब्रेक को हटाने से लाइन बहुत लंबी हो जाती है।


5

इसे थोड़ा साफ दिखने के लिए, टर्नरी ऑपरेटर का उपयोग करने पर विचार करें:

<textarea><?=( $siteLink_val ? $siteLink_val : '' );?></textarea>

2
छोटे टैग का उपयोग न करें, दूसरों को ऐसा करने का सुझाव न दें। यह एक अलग सर्वर के साथ प्रोडक्शन सर्वर में कुछ वेबऐप डालने पर लोगों को PITA से बचने में मदद करेगा। धन्यवाद।
अल्फ्रावो 20

4
मैं हमेशा टेम्परिंग परिदृश्यों में संक्षिप्त टैग का उपयोग करता हूं क्योंकि मैं चाहता हूं कि अधिक लोग उनका उपयोग करें, और इस प्रकार PHP समुदाय को उनका समर्थन जारी रखने के लिए प्रोत्साहित करें। उस ने कहा, लघु टैग केवल अस्थायी परिदृश्यों में उपयोग किया जाना चाहिए, आवेदन तर्क में कभी नहीं, और काफी स्पष्ट रूप से, केवल जब सर्वर उनका समर्थन करता है। हमेशा तैनात करने से पहले अपने उत्पादन वातावरण को जानें। (स्वाभाविक रूप से, यह छोटे टैग के पेशेवरों और विपक्षों पर चर्चा करने का स्थान नहीं है, लेकिन आपने इसे लाया, इसलिए मेरा औचित्य है।)
ब्रायन लैसी

4
<textarea style="width:350px; 
 height:80px;" cols="42" rows="5" name="sitelink"
 ><?php if($siteLink_val) echo $siteLink_val; ?></textarea> 

चल ...> नीचे मेरे लिए काम करता है।


4

मैं एक ही समस्या है, और समाधान बहुत आसान है: एक नई लाइन शुरू मत करो! हालांकि पिछले उत्तरों में से कुछ समस्या को हल कर सकते हैं, विचार स्पष्ट रूप से नहीं कहा गया है। महत्वपूर्ण समझ, अनायास ही रिक्त स्थान से छुटकारा पाने के है, बस अपने स्टार्ट टैग के बाद एक नई लाइन शुरू कभी नहीं।

निम्नलिखित तरीका गलत है और आपकी पाठ सामग्री से पहले बहुत सारे अवांछित स्थान छोड़ देगा:

 <textarea>
    text content // start with a new line will leave a lot of unwanted spaces
 </textarea>

यह करने के लिए सही तरीका है:

 <textarea>text content //put text content right after your start tag, no new line
 </textarea>

3

कृपया सुनिश्चित करें कि इसके बाद कोई लाइनब्रेक या स्थान नहीं है, यह सुनिश्चित करने के लिए कि कोई व्हाट्सएप या टैब नहीं है, बस इस कोड को कॉपी और पेस्ट करें :) मैंने इसे आपके लिए ठीक किया था

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php if($siteLink_val) echo trim($siteLink_val);?></textarea>

2

इसके अलावा: textarea टैग मल्टीलाइन कोड में नई लाइनों, टैब आदि के लिए स्थान दिखाता है।


2

अंदर कोई अतिरिक्त सफेद रिक्त स्थान के साथ textarea कोड रखें

अतिरिक्त यदि आप अतिरिक्त रिक्त लाइनों को देखते हैं तो मेटा भाषा में समाधान है:

<textarea>
for line in lines:
echo line.replace('\n','\r')
endfor
</textarea>

यह अतिरिक्त रिक्त लाइनों के बिना लाइनों को प्रिंट करेगा बेशक यह निर्भर करता है कि क्या आपकी लाइनें '\ n', '\ r \ n' या '' के साथ समाप्त हो रही हैं - कृपया अनुकूलित करें


2

पाठ क्षेत्र रहस्यमय स्थानों को दर्शाता है क्योंकि टैग में एक वास्तविक स्थान मौजूद है। <textarea> <php? echo $var; ?> </textarea> टैग के बीच इन अतिरिक्त स्थानों को हटाने के बाद, इस समस्या को हल किया जाएगा, जैसा कि निम्नलिखित है। <textarea><php? echo $var; ?></textarea>


2

एक समाधान जिसने मेरे लिए काम किया है, वह टेक्स्टएरिया में शैली जोड़ रहा है white-space: normal;क्योंकि कई बार यह सभी व्हाट्सएप को समाप्त करने के लिए संभव नहीं है (उदाहरण के लिए जब आप चाहते हैं कि आपका कोड आपके कोडिंग दिशानिर्देशों का पालन करे जिसमें टैब, व्हाट्सएप और लाइन ब्रेक जोड़ने की आवश्यकता होती है)

कृपया ध्यान दें कि टेक्स्टारिया के लिए डिफ़ॉल्ट, कम से कम क्रोम में है: white-space: pre-wrap;


2

यदि आप अभी भी इंडेंटेशन का उपयोग करना <?phpचाहते हैं, तो टैग खोलने के बाद इसे करें , जैसे:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php // <--- newline
    if($siteLink_val) echo $siteLink_val; // <--- indented, newline
?></textarea>

2

मैं इसकी देर से जानता हूं, लेकिन दूसरों की मदद कर सकता हूं।

दस्तावेज़ इंडेंटेशन की आवश्यकता होने पर इसका उपयोग करें।

$('document').ready(function()
{
    $('textarea').each(function(){
            $(this).val($(this).val().trim());
        }
    );
});

वही प्रश्न


या आप अपने html को सही तरीके से फॉर्मेट कर सकते हैं। लेकिन मैं इस बात से सहमत हूं कि अगर आप इसके अंदर php कोड जैसा कुछ चाहते हैं तो यह कुछ कठिन हो सकता है। इसलिए मैं आपके उत्तर से सहमत हूं।
नील्स लुकास

1

मैं PHP कोड के साथ मिश्रित HTML कोड के खिलाफ हूं।

हालाँकि यह कोशिश करें:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink">
<?php 
    if($siteLink_val) 
        echo trim($siteLink_val);
?> 
</textarea>

3
लगभग ... जिसमें अभी भी दो न्यूलाइन शामिल हैं।
अमरबेल

उपयोग करना चाहिए <textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?php और ?></textarea>यह सुनिश्चित करने के लिए कि यह वास्तव में शुद्ध है। इसके अलावा, क्या मैं पूछ सकता हूं कि आप PHP के साथ HTML के खिलाफ क्यों हैं?
फ्लोरेसेंटग्रीन 5

1

बस एक ही लाइन में अपने और अपने करीबी टैग को परिभाषित करें।

<textarea class="form-control"
          id="newText"
          rows="6"
          placeholder="Your placeholder here..."
          required
          name="newText"></textarea>

0

इसके अलावा, जब आप कहते हैं कि कर्सर टेक्स्टारिया के "मध्य" में है, तो यह मुझे लगता है कि आप अतिरिक्त सीडिंग या टेक्स्ट-संरेखित भी कर सकते हैं : केंद्र आपके सीएसएस में कहीं भी परिभाषित है।


0

पहले सुनिश्चित करें कि आपका $ siteLink_val मान के रूप में सफेद स्थान नहीं लौटा रहा है। डिफ़ॉल्ट रूप से <textarea> तत्व का एक खाली मान होता है, इसलिए यदि आप किसी कारण के लिए प्रतिध्वनित होने वाले चर में रिक्त स्थान हैं, तो आपकी समस्या बल्ले से ठीक है।

कोड को सबसे शुद्ध बनाने के लिए, मैं आपको सुझाव दूंगा कि आप ऐसा कुछ कर सकते हैं, जिससे बाद में कुछ और लचीलेपन की अनुमति मिल सके। मैंने एक फ़ंक्शन बनाया है जो या तो एक NULL देता है यदि चर मौजूद नहीं है (जो आप मूल पोस्ट के लिए लक्ष्य करना चाहते हैं) और पूर्ण मान अन्यथा। एक बार जब आप अपने चर की सामग्री सुनिश्चित कर लें, तो यह कोशिश करें:

function build_siteLink_val() {
     if ( $siteLink_val ) {
          return $siteLink_val;
     }

     else {
          return "";
     }
}

$output_siteLink_val = build_siteLink_val();

और अब आपके textarea में निम्नलिखित कोड पढ़ा होगा:

<textarea style="width:350px; height:80px;" cols="42" rows="5" name="sitelink"><?=$output_siteLink_val?></textarea>

यह मान रहा है कि आपका PHP इंस्टॉलेशन शॉर्ट-हैंडेड वैरिएबल कॉल्स के लिए कॉन्फ़िगर किया गया है, जैसा कि शॉर्ट किए गए "<? =>>" टैग में देखा गया है। यदि आप इस तरह से आउटपुट नहीं कर सकते हैं, तो अपने PHP कोड को "<? Php" और ">?>" के साथ बंद करना याद रखें।

<Textarea> के बीच लाइन ब्रेक से बचें क्योंकि यह गलत चरित्रों की क्षमता पैदा कर सकता है।

इसके अलावा, यह सुनिश्चित करने के लिए अपने सीएसएस की जांच करें कि पाठ को अंदर की ओर धकेलने वाला पेडिंग नियम नहीं है।

इसके अलावा, आप टेक्स्टारिया पर एक कॉल और पंक्तियों के मूल्य को निर्दिष्ट करते हैं, और फिर एक चौड़ाई और ऊंचाई को स्टाइल करते हैं। ये नियम काउंटर-उत्पादक हैं, और असंगत दृश्यों के परिणामस्वरूप होंगे। शैली के माध्यम से आकार को परिभाषित करने के साथ छड़ी (मैं तत्व को एक वर्ग देने की सलाह देता हूं) या पंक्तियों / कॉल।

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