我在HTML/JavaScript中製作終端窗口,並使用textarea進行輸入。我想阻止textarea中的文本部分被刪除。例如,如果我在textarea「C:\> Random Code」中有文本,我想阻止用戶刪除「C:\>」文本。這可能使用JavaScript?HTML textarea防止刪除一些文本
回答
你不能製作一段textarea不可編輯的(只有整個控件)。
您可以使用各種JavaScript的詭計(聽按鍵事件,如果用戶想這樣做,你不希望允許使用的東西取消event.preventDefault事件)
另一種方案是,而不是有一個不可輸入的部分,自動將預定義的字符串追加(或預先)到用戶輸入(並以某種方式顯示給用戶)。
更新:
所以,我的解決辦法是這樣的:
var requiredText = 'C:>';
$('textarea').on('keyup',function(event) {
if (GetSelectionStart(this) < requiredText.length){
event.preventDefault();
event.stopPropagation();
}
}
哪裏GetSelectionStart
是告訴選定的文本(或插入位置的開頭的函數,如果沒有選中的文本範圍)。對於一些可能的實現,請參閱e。 G。 Caret position in textarea, in characters from the start
該函數假定requiredText始終位於字符串的開頭。但是,當然,它可以適應更復雜的場景。
假設jQuery的,這個腳本會監聽按鍵,並且如果有必要的文字不能被發現(即:用戶試圖刪除),將自身添加右後衛有:
var requiredText = 'C:>';
$('textarea').on('input',function() {
if (String($(this).val()).indexOf(requiredText) == -1) {
$(this).val(requiredText);
}
}
哇,這很好!我從來沒有想過我可以使用indexOf這種方式!這很酷且有用。謝謝! – Sebastien
此代碼僅檢查輸入文本中是否存在requiredText;然而,它不檢查:1)文本以requiredText開頭(因爲在這種情況下是必需的)2)可以破壞用戶輸入,例如, G。 「C:> somefolder/somefile.txt」是輸入值,用戶刪除「:>」=> textarea的新值將是「C:>」 - 從用戶的角度來看,這可能真的令人沮喪恕我直言 –
- 1. 防止在EditText中刪除一些文本
- 2. textarea onclick刪除文本
- 3. 防止某些文本在RichTextBox中被刪除或更改
- 4. onfocus從textarea刪除文本
- 5. 防止刪除
- 6. 防止文件刪除
- 7. 防止在Oracle中刪除某些行
- 8. 如何防止IE刪除一個「空白」文本節點
- 9. 防止CKEditor刪除溢出的html
- 10. 防止刪除UIViewController
- 11. UITableViewCell防止刪除
- 12. 從大量數據的textarea中刪除某些文本
- 13. 從textarea刪除HTML標籤
- 14. 如何防止用戶刪除文本框中的文本
- 15. 刪除HTML文件中的一些文本數據
- 16. 刪除Textarea中的重複文本
- 17. 防止在文本中插入html html
- 18. 在按下輸入鍵在textarea防止換行符,並刪除textarea中的文本
- 19. 用Javascript刪除textarea中的某些文本
- 20. 防止用戶點擊Enter除了Textarea
- 21. jQuery在清除textarea文本時刪除了textarea佔位符
- 22. JSON包裹在一些HTML,HTML刪除
- 23. Android,EditText事件,防止文本的某些部分可以被刪除/更改
- 24. 新的R-Studio版本0.98.932刪除.md文件 - 如何防止?
- 25. tinymce編輯刪除某些textarea
- 26. 如何刪除一些鏈接文本?
- 27. sed命令刪除一些文本
- 28. Textarea刪除佔位符和文本
- 29. 文本從textarea中刪除後,無法將文本複製到textarea
- 30. 如何防止文字被刪除
也許你可以使用你的textarea的onchange事件來檢查它的內容的長度,那麼如果內容更小,並且內容不是以「C:>」開頭的,你可以替換字符串? – Sebastien