ইনপুট টাইপ = "পাঠ্য" উপাদান এইচটিএমএল / সিএসএসের ভিতরে পাঠানো মোড়ক


96

নীচে প্রদর্শিত এইচটিএমএল,

<input type="text"/>

যেমন একটি ব্রাউজারে প্রদর্শিত হয়:


আমি যখন নিম্নলিখিত পাঠ্য যুক্ত করি,

দ্রুত ব্রাউন শিয়ালটি অলস কুকুরটির উপরে লাফিয়ে উঠল।

নীচের এইচটিএমএল ব্যবহার করে,

<input type="text" value="The quick brown fox jumped over the lazy dog."/>

এটি যেমন একটি ব্রাউজারে প্রদর্শিত হয়:


তবে আমি এটির মতো ব্রাউজারে প্রদর্শিত হতে চাই:


আমি চাই আমার ইনপুট উপাদানটির পাঠ্যটি মোড়ানো হোক। এটা কি টেক্সটরিয়া ছাড়া সম্পন্ন করা যায়?


4
না, আমি এটা করতে পারি বলে মনে করি না। তবে কেন একটি টেক্সটরিয়া বিকল্প নয়?
পেক্কা

35
কখনও কখনও টেক্সারিয়া ব্যবহার করা কোনও বিকল্প নয় কারণ আপনি একাধিক লাইনের পাঠ্যের ইনপুটটিকে অনুমতি দিতে চান না। কেবলমাত্র একক পাঠ্য পাঠ্য মোড়ানোর জন্য (দ্রষ্টব্য: এগুলি একই জিনিস নয়)।
ফ্ল্যাটলাইনার ডিওএ

মানককরণের জন্য সিএসএসডব্লিউজির সাথে এই নিখুঁত উদ্দেশ্যটির জন্য একটি সমাধান আলোচনা করা হয়েছে , দুঃখের বিষয় আমি যদিও এটি খুঁজে পাচ্ছি না।
নাল

আমি এটি খুঁজে পেয়েছি; github.com/w3c/csswg-drafts/issues/2141
নাল

4
@ পেপকা 웃 এটি প্রাসঙ্গিক নয়, তবে কয়েকটি কারণের মধ্যে রয়েছে: আমরা টেক্সারিয়াসে এইচটিএমএল 5 বৈধতা ব্যবহার করতে পারি না; আমরা পাঠ্যকে বৈধ করার জন্য প্যাটার্ন সীমাবদ্ধতাগুলি ব্যবহার করতে পারি না; একটি টেক্সারিয়া হ'ল একটি ইনপুট টাইপ = পাঠ্যের একটি অপ্রয়োজনীয় প্রতিশব্দ (এটি কোনও পাঠ্য টাইপ হয় এমন একটি ইনপুট!) যার অর্থ স্টাইলিং দ্বিগুণ, ইত্যাদি etc. সংক্ষেপে অনেকগুলি কারণ রয়েছে।
পিটার কোঙ্গা-কামাউ

উত্তর:


62

textareaমাল্টিলাইন পাঠ্য ইনপুটটির জন্য এটিই কাজ। প্রভু input এটা করবেন না ; এটি এটি করার জন্য ডিজাইন করা হয়নি।

সুতরাং একটি ব্যবহার textarea। তাদের ভিজ্যুয়াল পার্থক্য ছাড়াও, তারা একইভাবে জাভাস্ক্রিপ্টের মাধ্যমে অ্যাক্সেস পেয়েছে ( valueসম্পত্তি ব্যবহার করুন )।

আপনি inputইভেন্টের মাধ্যমে প্রবেশ করে নতুনভাবে রোধ করতে পারেন এবং কেবলমাত্র একটি ব্যবহার করে replace(/\n/g, '')


69
এটি প্রবেশের সময় মোড়ানো অবস্থায় প্রদর্শন করার সময় কীভাবে ইনপুটটির একক লাইন সংগ্রহ করবেন সে প্রশ্নের সত্যই উত্তর দেয় না।
এএইচডিভি

4
এর সাথে একটি বড় সমস্যা হ'ল একটি পাঠ্যগ্রন্থি মোবাইল ডিভাইসে গো বোতামটি দমন করে।
ড্যান

4
@alex অবিকল সুতরাং আপনি যদি আসল মাল্টলাইন ইনপুট চান, তবে একটি টেক্সটরিয়া ভাল, তবে আপনি যদি কেবল শব্দ-মোড়ানো ইনপুট চান, তবে CSS সমাধানটি আরও ভাল।
ড্যান

4
আমার বয়স প্রায় বলতে <textarea>jQuery এর মধ্যে স্বয়ংসম্পূর্ণ ভালো জিনিস সাথে কাজ করবে না, কিন্তু পরিবর্তন <input>করতে <textarea>এবং যে সব প্রয়োজনীয় যে। মানদণ্ডের জন্য হুর!
সাবেলফোস্টে

9
যেমন উপরে বলা হয়েছে: একটি লাইন মোড়ানো! == একটি বহু-লাইন স্ট্রিং। আমি নিশ্চিত নই কেন এটি গ্রহণযোগ্য উত্তর কারণ এটি প্রশ্নের উত্তর দেয় না।
ম্যাটলুমাস

37

ওয়ার্ড ব্রেক কিছু অভিপ্রায় অনুকরণ করবে

    input[type=text] {
        word-wrap: break-word;
        word-break: break-all;
        height: 80px;
    }
<input type="text" value="The quick brown fox jumped over the lazy dog" />

কার্যকারণ হিসাবে, এই সমাধানটি কয়েকটি ব্রাউজারে তার কার্যকারিতা হারিয়ে ফেলেছে। দয়া করে ডেমোটি পরীক্ষা করুন: http://cssdesk.com/dbCSQ


7
আমি এটি ফায়ারফক্স ৪৩.০.৪ এ কেবল পরীক্ষা করেছি এবং এটি সাফারি 9 এবং ক্রোম 48 তে কাজ করছে বলে মনে হচ্ছে না: cssdesk.com/dbCSQ
জেসন স্পারস্ক

6
@ জেসনস্পারসেক দ্বারা সংযুক্ত ডেমো ক্রোম 50 এ নয় ফায়ারফক্স 45 এ আমার জন্যও কাজ করে না
সিজারি

ডেমোটি আমার জন্য লিনাক্সের ক্রোম 48 এ কাজ করে তবে আমার নিজের পৃষ্ঠায় একই সিএসএস দেয় না।
Mnebuerquo

40
সমাধান ক্রোম 50 :( থেকে অন্তত পুরানো হয়ে ওঠে
userlond

4
এই সমাধানটি ভুলে যান: ক্রোম /৪/7575, ফায়ারফক্স 63৩/6767, এজ ৪২, আইই ১১ এবং ইউসি ব্রাউজার 7.0 নিয়ে কাজ করে না (তবে জিনোম ওয়েব 3.28 - অ্যাপলওয়েবকিট / 605.1.15 এর সাথে কাজ করে)
টাঙ্গু_ক

10

আপনি এর জন্য ইনপুট ব্যবহার করতে পারবেন না , পরিবর্তে আপনার টেক্সারিয়া ব্যবহার করা দরকার। wrap="soft"কোড সহ টেক্সটরিয়া ব্যবহার করুন এবং এই জাতীয় বৈশিষ্ট্যগুলির মতো alচ্ছিক :

<textarea name="text" rows="14" cols="10" wrap="soft"> </textarea>

বৈশিষ্ট্য: উদাহরণস্বরূপ "40" অক্ষরগুলির মধ্যে পাঠ্যের পরিমাণ সীমাবদ্ধ করতে আপনি maxlength="40"এই জাতীয় বৈশিষ্ট্যটি যুক্ত করতে পারেন : এর <textarea name="text" rows="14" cols="10" wrap="soft" maxlength="40"></textarea> জন্য শৈলীতে স্ক্রোলটি আড়াল করতে। আপনি শুধুমাত্র ব্যবহার overflow:scroll;বা overflow:hidden;বা overflow:auto;এতে কেবলমাত্র একটি স্ক্রল বার জন্য প্রভাবিত নিতে হবে। আপনি যদি প্রতিটি স্ক্রোল বারের জন্য আলাদা আলাদা অ্যাট্রিবিউট চান overflow:scroll; overflow-x:auto; overflow-y:hidden;তবে স্টাইল এরিয়াতে এই জাতীয় বৈশিষ্ট্যগুলি ব্যবহার করুন : পাঠ্যকে পুনরায় আকার পরিবর্তনযোগ্য না করতে আপনি resize:none;এই জাতীয় শৈলীটি ব্যবহার করতে পারেন :

<textarea name="text" rows="14" cols="10" wrap="soft" maxlength="40" style="overflow:hidden; resize:none;></textarea>

এইভাবে আপনার কাছে 14 টি সারি এবং 10 টি কোল সহ শব্দ মোড়ানো এবং "40" অক্ষরের সর্বাধিক অক্ষরের দৈর্ঘ্য যে কোনও ইনপুট পাঠ্য বাক্সের মতো কাজ করে তবে সারিগুলির সাথে পরিবর্তে এবং ইনপুট পাঠ্য ব্যবহার না করে একটি টেক্সেরিয়া থাকতে পারে example

উল্লেখ্য: ইনপুট মত অসদৃশ সারি দিয়ে পাঠ্য এলাকা কাজ <input type="text" name="tbox" size="10"></input>যে তৈরি করা হয় না এ সব সারি সঙ্গে কাজ করে।


7

একটি পাঠ্য ইনপুট যা ফণা অধীন মান একটি একক লাইন স্ট্রিং কিন্তু একটি শব্দ-আবৃত বিন্যাসে ব্যবহারকারী আপনি ব্যবহার করতে পারেন উপস্থাপিত করা হয় তৈরি করতে contenteditable একটি উপর অ্যাট্রিবিউট <div>বা অন্যান্য উপাদান:

const el = document.querySelector('div[contenteditable]');

// Get value from element on input events
el.addEventListener('input', () => console.log(el.textContent));

// Set some value
el.textContent = 'Lorem ipsum curae magna venenatis mattis, purus luctus cubilia quisque in et, leo enim aliquam consequat.'
div[contenteditable] {
  border: 1px solid black;
  width: 200px;
}
<div contenteditable></div>

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.