第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

可換行的單行文本輸入

可換行的單行文本輸入

慕森卡 2022-06-05 15:50:06
我正在為我的一個項目編寫一個基于瀏覽器的文本編輯器。每個文本都有一個標(biāo)題,用戶可以對其進(jìn)行編輯。用戶不應(yīng)該能夠格式化該標(biāo)題或向其添加任何 html,它應(yīng)該只是一個純字符串。一個<input type="text">元素是理想的,但由于標(biāo)題可能很長,我需要換行,據(jù)我所知,這是輸入標(biāo)簽無法做到的。我可以使用<textarea>,但這將允許用戶手動添加換行符,這是我不想要的。我可以使用<p contenteditable="true">,但這會添加不需要的標(biāo)記,并且用戶將能夠插入手動換行符和其他標(biāo)記。我可以編寫一大堆 JavaScript 來驗證和限制<textarea>orcontenteditable標(biāo)記,但這似乎很容易出錯并且可能會引入跨瀏覽器的不一致。還是我讓這種方式過于復(fù)雜,并且有一種簡單的方法可以防止誤用?我相信人們以前已經(jīng)解決了這個問題。我在這里想念什么?我真的需要一個非常復(fù)雜的 JavaScript 解決方案來獲得可換行的單行文本輸入嗎?順便說一句,我使用tiptap作為我的編輯器組件。我知道它可以進(jìn)行標(biāo)題輸入,但到目前為止我還沒有弄清楚如何提取該標(biāo)題。我希望它與文本分開存儲,而不是作為文本的一部分。如果有人對使用tiptap 解決我的問題有意見,那也可以作為答案——盡管我認(rèn)為使用成熟的富文本編輯器來制作簡單的、未格式化的單行代碼有點(diǎn)過頭了。我更喜歡更輕量級的解決方案。
查看完整描述

1 回答

?
守著一只汪

TA貢獻(xiàn)1872條經(jīng)驗 獲得超4個贊

這里有兩個簡單的解決方案:


在客戶端禁用 Enter 鍵


document.querySelector('#textInput').addEventListener('keydown',

    function(event) {

        var keyCode = event.keyCode || event.which;

        // If ENTER key

        if (keyCode === 13) {

            event.preventDefault(); // do nothing

        }

    }

);

<html>

<body>

  <textarea id="textInput" rows=3></textarea>

</body>

</html>


刪除服務(wù)器端的換行符


let text = inputText.replace(/\n/, '');


或者用空格替換它們,然后用一個替換雙空格


let text = inputText.replace(/(\r\n|\n|\r)/gm, ' ').replace(/\s+/g, ' ');



使用這兩種解決方案比只使用一種解決方案要好。


查看完整回答
反對 回復(fù) 2022-06-05
  • 1 回答
  • 0 關(guān)注
  • 108 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號