سؤال

أقوم بتحرير أ <textarea> مع جافا سكريبت.المشكلة هي أنه عندما أقوم بعمل فواصل أسطر فيها، فإنها لن تظهر.كيف يمكنني أن أفعل هذا؟

أحصل على القيمة اللازمة لكتابة دالة، لكنها لن تعطي فواصل أسطر.

هل كانت مفيدة؟

المحلول

والمشكلة تأتي من حقيقة أن يكسر خط (\n\r؟) ليست هي نفسها كعلامات <br/> HTML

var text = document.forms[0].txt.value;
text = text.replace(/\r?\n/g, '<br />');

نصائح أخرى

وإذا كنت تستخدم جافا سكريبت العام وتحتاج إلى تعيين سلسلة إلى نص قيمة المنطقة ثم

 document.getElementById("textareaid").value='texthere\\\ntexttext'.

وتحتاج إلى استبدال \n أو < br > إلى \\\n

وإلا فإنه يعطي Uncaught SyntaxError: Unexpected token ILLEGAL على جميع المتصفحات.

وتحتاج إلى استخدام \n لlinebreaks داخل textarea

وربما شخص ما تجد هذه مفيدة:

وكان لي مشكلة مع فواصل الأسطر التي صدرت من متغير خادم جافا سكريبت متغير، ومن ثم جافا سكريبت كان يكتب لهم جزء النص (باستخدام الارتباطات قيمة knockout.js).

والحل كان الهروب ضعف خطوط جديدة:

orginal.Replace("\r\n", "\\r\\n")

وعلى جانب الملقم، لأنه مع مجرد حرف هروب واحدة جافا سكريبت لم تحليل.

وخط جديد هو مجرد مسافة بيضاء إلى المتصفح ولن يتم التعامل مع أي مختلفة إلى الفضاء الطبيعي ( ""). للحصول على خط جديد، يجب إدراج عناصر <BR />.

ومحاولة أخرى لحل المشكلة: اكتب النص في جزء النص ثم إضافة بعض جافا سكريبت وراء الزر لتحويل الأحرف غير مرئية إلى شيء قابل للقراءة وتفريغ نتيجة لDIV. وأن أقول لكم ما يريد متصفحك.

إذا كنت ترغب في عرض النص داخل الصفحة الخاصة بك، يمكنك استخدام العلامة <pre>.

document.querySelector('textarea').addEventListener('keyup', function() {
  document.querySelector('pre').innerText = this.value;
});
<textarea placeholder="type text here"></textarea>
<pre>
The
new line will
be respected
</pre>

لدي منطقة نصية مع المعرف #infoartist يتبع:

<textarea id="infoartist" ng-show="dForm" style="width: 100%;" placeholder="Tell your contacts and collectors about yourself."></textarea>

في كود جافا سكريبت، سأحصل على قيمة منطقة النص وأستبدل سطر الهروب الجديد ( ) بـ <br /> العلامة، مثل:

var text = document.getElementById("infoartist").value;
text = text.replace(/\r?\n/g, '<br />');

لذلك إذا كنت تستخدم jquery (مثلي):

var text = $("#infoartist").val();
text = text.replace(/\r?\n/g, '<br />');

آمل أن يكون قد ساعدك.:-)

إذا كنت بحاجة فقط لإرسال قيمة testarea إلى خادم مع فواصل الأسطر استخدام nl2br

وهنا هو الشيء فعلت لنفس المشكلة كان لي.

وعندما أنا تمرير النص إلى الصفحة التالية في التخطيط الاستراتيجي المشترك، أنا القراءة على أنها جزء النص بدلا من قراءة شيء من هذا القبيل

وهكذا جاء الانتاج كما أردت. وغيرها من الممتلكات، يمكنك استخدام على النحو التالي.

<textarea style="background-color: white; border: none; width:660px;font-family: Arial, Helvetica, sans-serif; font-size:1.0em; resize:none;" name="text" cols="75" rows="15" readonly="readonly" ><s:property value="%{text}"/></textarea>
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top