簡體   English   中英

您可以輸入文本,但可以鍵入文本,但不允許刪除文本嗎?

[英]Can you make a text input that allows you to type text, but doesn't allow you to delete text?

我一直在研究如何防止用戶刪除文本框中的文本和其他類似問題,但是我找不到如何做到這一點。

您如何“能夠寫文本”,但又不能“刪除文本”。 例如,按下Backspace或Delete時是否可能不執行任何操作?

我在這個問題上還沒有領先優勢,所以我實際上沒有任何代碼可以在演示中顯示。

只是澄清一下:

我正在嘗試制作一個<input type='text'/> ,它允許您鍵入它,但不能刪除其中的文本。 可能嗎? 我很確定這是可能的,但是我還沒有找到這個問題的答案。

如果“可能”,那么我需要使用純Javascript。 除了純javascript,css和html之外,我真的不喜歡其他東西。

編輯:

多虧了評論者,我現在要注意一些事情,例如onChange事件。 我會嘗試自己同時做...

感謝@Isacc回答了我一半的問題。 我現在去接受答案。 我很確定我現在可以自己解決其余的問題。 我需要的只是一些代碼。

@ARN,這解決了其余大部分問題! 謝謝! :D

@Kavian_K,非常感謝您的幫助! :)

還有@ user3210641,感謝您填寫完整的問題! :)

@Arun Bhat,歡迎來到Stack Overflow! 感謝您提交答案!

 var input = document.getElementById('myInput'); input.onkeydown = function() { var key = event.keyCode || event.charCode; if( key == 8 || key == 46 ) return false; }; 
 <input id="myInput" type="text" name="firstname" value="Mickey"> 

看看上面的代碼,它檢測到密鑰並通過返回false onkeydown取消操作

以下功能可防止用戶deletecutpaste輸入框的值:

 $( '#txt' ).on( 'keydown', function( e ) { var key = e.keyCode || e.charCode; if ( key == 8 || key == 46 ) e.preventDefault(); } ).on( 'cut paste', function( e ) { e.preventDefault() } ) 
 <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> <input id="txt" type="text" placeholder="Enter Text"> 

我認為不應將先前的答案標記為正確,因為您可以通過粘貼新文本或突出顯示文本的一部分並鍵入內容來更改輸入字段的內容。

這是一個完整的解決方案:

 let content = ''; document.getElementById('input').addEventListener('input', function(e) { const value = this.value; if (this.value.length > content.length && value.indexOf(content) === 0) { content = value; return; } this.value = content; }); 
 <input id="input" /> 

說明:每次輸入值更改時,它都會檢查更新的輸入值是否比上一個更長(添加了字符),並且是否包含上一個的所有字符-如果是,則添加新字符並更新content變量,否則為將輸入值設置為上一個。

下面的代碼應該工作。

function noBackSpace()
{
if(event.keyCode == 8 || event.keyCode == 46)
{
    alert("No Back Space");
    return false;
}
}

<input type="text" name="txt" value="" onkeydown="return noBackSpace()">

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM