如何禁止用戶從一個文本框複製文本到另一個文本框?

如何禁止用戶從一個文本框複製文本到另一個文本框?

通常我們在註冊的時候要求用戶輸入電子郵件地址,爲了辨認地址是否有效,我們往往會發送一份確認信件。
但是如果用戶不小心輸入了一個錯誤的地址,然後再到自己的郵箱中尋找驗證信息的時候,那麼會發生什麼呢?
很明顯,用戶找不到驗證郵件,然後可能會不明所以,然後放棄該站點。
那怎麼辦呢?我們可以採用和密碼的方式一樣,讓用戶輸入兩次郵箱地址來保證不會犯錯誤。
但通常會有一個問題,輸入一次地址後,然後複製,然後粘貼到第二個地址中。這樣的話錯誤仍然會發生。
爲此,我們可以採用一點js來防止用戶這麼做:
我們使用Jquery庫。由於瀏覽器對copy ,paste 事件的處理不一樣(ie 只對表單元素,輸入框,圖像起作用,而firefox,opera等對文檔內起作用),所以我們使用jquery 庫,可以避免處理這些事情。

效果圖:

1.首先我們需要引入Jquery  庫

兩種方式:

第一種:我們假設在asp.net 頁面中。

<script type="text/javascript" src='<%=Page.ResolveClientUrl("~/Scripts/jquery-1.4.2.min.js") %>'></script>


第二種:直接引用啦。

<script type="text/javascript" src="http://code.jquery.com/jquery-1.4.2.min.js"></script>

 

2. 綁定 copy ,paste 事件

Code:
  1. <script type="text/javascript">  
  2.    $(document).ready(function () {  
  3.       $('#id_of_textbox').bind('paste'function (e) {  
  4.          e.preventDefault();  
  5.          alert("You cannot paste text into this textbox!");  
  6.       });  
  7.    });  
  8. </script>   

id_of_textbox 爲輸入框的 id 號,這裏我們綁定了一個粘貼事件處理。

e.preventDefault(); 爲阻止默認的粘貼操作。

然後彈出一個對話框,提示禁止粘貼操作。我在咱們的csdn 編輯器上面複製文字時候也有提示,不知道大家情況一樣不?~ | ~

 
  如果在asp.net 頁面中,我們規定:

郵箱 ID 爲: txtEmail

郵箱確認 ID 爲: txtConfirmEmail

我們的js  就可以這樣寫了:

Code:
  1. <script type="text/javascript">  
  2.    $(document).ready(function () {  
  3.       $('#<%=txtEmail.ClientID%>').bind('copy'function (e) {  
  4.          e.preventDefault();  
  5.       });  
  6.   
  7.   
  8.       $('#<%=txtConfirmEmail.ClientID%>').bind('paste'function (e) {  
  9.          e.preventDefault();  
  10.       });  
  11.    });  
  12. </script>   

上面的代碼第一個copy ,是當用戶複製第一個郵箱地址時候,把複製行爲取消。

第二個 paste,是當用戶在第二個確認郵箱中進行粘貼操作時候,取消粘貼行爲。

3.適度的美化

我們的效果圖還有一個紅線圈起的提示框,這個也很簡單了,代碼如下:

Code:
  1. <script type="text/javascript">  
  2.    $(document).ready(function () {  
  3.       $('#<%=txtEmail.ClientID%>').bind('copy'function (e) {  
  4.          e.preventDefault();  
  5.           
  6.          //顯示一個提示層,並設置提示信息和位置樣式  
  7.          $('#message').text("不能從該輸入框進行復制操作...")  
  8.                       .css(  
  9.                         {  
  10.                            left: 20 + $(this).offset().left + $(this).width() + 'px',  
  11.                            top: $(this).offset().top + 'px'  
  12.                         })  
  13.                       .fadeIn(3000, function () { $(this).fadeOut(1500) });  
  14.       });  
  15.       
  16.    //粘貼操作是一樣的,我就不寫了  
  17.    });  
  18. </script>   

轉載來自  http://student.csdn.net/space.php?uid=464378&do=blog&id=38634

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章