2011-03-17 83 views
1

註冊到網站時,它有2個字段。確認電子郵件和電子郵 問題是,人們正在複製他們在第一個字段上寫的內容並粘貼到其他字段上。 我想禁用它,這可能嗎?禁用Ctrl + C

<h:inputText id="email" value="#{registerBean.email}" maxlength="60" /> 
+6

「重複電子郵件地址」是註冊時最惱人的事情之一。你不能只使用OpenID嗎? – 2011-03-17 19:58:11

回答

7

在UI設計中追蹤最重要的事情之一(如果您關心的是一致的用戶界面)是人們期待的所有細微差別。

如果您禁用了「複製」熱鍵序列,那麼很多人會感到沮喪,因爲您的界面不符合操作系統其餘部分的細微差別。雖然我明白你爲什麼要這樣做,但這並不能說服人們你的代碼沒有被破壞。畢竟「Ctrl + C」在其他地方工作。

一旦你偏離實施預期的UI控制細微差別,那麼你需要指出細微差別在哪裏以及它被拒絕的地方。這是不一致用戶界面的定義。由於用戶不會在那裏解釋當用戶界面做了他們不期望的事情時的「爲什麼」,他們總會認爲它是一個錯誤。如果他們確實讓你告訴他們爲什麼他們不能在他們的操作系統的其他部分做某些事情,他們會一直認爲你在執行其他人允許的愚蠢行爲時過分熱心。

解決方案是使用更好的解決方案。實施已經預期會減少學習曲線的內容,或選擇一些迴避令人反感的任務的內容(OpenID已被提及)。

+0

我同意你的意見,但是,我的老闆想用這種方式,我會試着說服他。 – pringlesinn 2011-03-18 12:34:25

0

This page提出以下解決方案:

<script language="javascript"> 

function onKeyDown() { 
    // current pressed key 
    var pressedKey = String.fromCharCode(event.keyCode).toLowerCase(); 

    if (event.ctrlKey && (pressedKey == "c" || pressedKey == "v")) { 
     // disable key press porcessing 
     event.returnValue = false; 
    } 
} // onKeyDown 

</script> 

我雖然補充一點,在總體上是不可能的網頁告訴客戶端瀏覽器「禁用剪切和粘貼」。

順便說一句,我從來沒有使用Ctrl + C複製文本。我在XWindows上,所以只需選擇文本將複製它。如果我在Windows系統上我通常做按Ctrl +插入

+0

大多數人使用ctrl + c,所以我猜它已經幫了很多嘻嘻 – pringlesinn 2011-03-17 20:06:59

+0

這是不好的方法,它可以防止用戶實際輸入電子郵件。德國鍵盤上的'@'字符是通過ctrl + alt + V組合鍵獲得的。許多斯拉夫國家使用德國QWERTZ的變體,並且通過這個腳本,您可以從您的註冊表中阻止歐洲的一半。 – 2013-01-03 22:47:18

0

我想,這個問題是非常類似於你:Disable pasting text into HTML form

我的答案總結:可以,但它很混亂,而且很糟糕的UI設計。他們對於更好的UI設計也有一些很好的建議。

0

請不要這樣做。我討厭複製我的電子郵件地址,如果我實際上需要輸入兩次,我會離開,除非我因爲某種原因被迫開戶。