2012-05-31 26 views
4

我有兩個字段之一是emailid,另一個是我的表單中的密碼。我想要檢測到,當用戶重新輸入電子郵件和密碼比他不應該能夠複製上述。他必須再次手動寫入。就像谷歌表格如何檢測複製和粘貼在JavaScript?

+10

如果有人想複製粘貼,那是他們的決定,而不是你的。防止默認的操作系統/瀏覽器行爲是永遠不可能的解決方案。 –

+0

之前已經完成,但這不是個好主意,特別是對於電子郵件和其他純文本:這比偶爾輸入錯誤的電子郵件地址更不方便。 – jpaugh

+0

參考http://stackoverflow.com/questions/1226574/disable-copy-paste-into-html-form-using-javascript –

回答

7

您可以禁用ctrl+v組合和right click以及。對於IE,您可以使用;

對於IE,您可以使用;

onpaste="return false;" oncut="return false;" oncontextmenu="return false;" oncopy="return false;". 

下面是所有瀏覽器的解決方法;

function noCTRL(e) 
{ 
var code = (document.all) ? event.keyCode:e.which; 
var ctrl = (document.all) ? event.ctrlKey:e.modifiers & Event.CONTROL_MASK; 
var msg = "Sorry, this functionality is disabled."; 
if (document.all) 
{ 
if (ctrl && code==86) //CTRL+V 
{ 
alert(msg); 
window.event.returnValue = false; 
} 
else if (ctrl && code==67) //CTRL+C (Copy) 
{ 
alert(msg); 
window.event.returnValue = false; 
} 
} 
else { 
if (ctrl==2) //CTRL key 
{ 
alert(msg); 
return false; 
} 
} 
} 
Email :<input name="email" type="text" value=""/><br/> 
Password :<input name="password" type="password" value=""/><br/> 
Confirm Email :<input name="email" type="text" value="" onkeydown="return noCTRL(event)"/>  
Confirm Password :<input name="password" type="password" value="" onkeydown="return noCTRL(event)"/> 

,我不認爲用戶可以複製密碼字段,如果輸入類型爲password

希望這有助於。

注意: 1.在瀏覽器中禁用JavaScript會讓用戶做任何他想做的事 2.始終尊重用戶的自由。請記住這一點

+0

你*可以*禁用它們。我不會說一個*應該*禁用它們。 –

+0

是的,它是@DA .....;) –

+0

這在OSX中不適用於我。例如,Ctrl鍵被綁定到'91'。如果你有權訪問像圖書館'jquery'看看這篇文章:http://stackoverflow.com/questions/686995/catch-paste-input – TOBlender