我有密码和确认密码字段,我不希望用户只是从第一个字段复制并粘贴在后面的字段中。我该怎么做?
答案 0 :(得分:4)
通常会为密码类型字段禁用复制功能,因此您无需执行任何操作。但是,没有什么可以阻止用户将相同的文本粘贴到其他地方的两个字段中,并且您无法做很多事情。试图阻止这种情况会阻止一些想要确保密码正确的用户以及使用密码生成器的用户。
答案 1 :(得分:3)
这是一种方式......
<asp:TextBox ID="txtEMailVerifyJoin" runat="server" ClientIDMode="Static"
autocomplete="off"
onpaste="pasteEvent('reg_conf_email');return false;"
onkeydown="disablePaste('pasteEvent()','reg_conf_email');"
onkeyup="disablePaste('pasteEvent()','reg_conf_email');"
oninput="disablePaste('pasteEvent()','reg_conf_email');"
></asp:TextBox>
对于javascript
<script>
var charCount = document.getElementById("txtEMailVerifyJoin").value.length;
var oldVal = eval(document.getElementById("txtEMailVerifyJoin")).value;
function disablePaste(methodToCall)
{
newCharCount = document.getElementById("txtEMailVerifyJoin").value.length;
oldCharCount = charCount;
charCount = newCharCount;
if(newCharCount - oldCharCount > 1)
{
eval(methodToCall);
charCount = oldVal.length;
}
else
{
oldVal = eval(document.getElementById("txtEMailVerifyJoin")).value;
}
}
function pasteEvent()
{
document.getElementById("txtEMailVerifyJoin").value=oldVal;
return false;
}
function initDisablePaste()
{
charCount = document.getElementById("txtEMailVerifyJoin").value.length;
oldVal = eval(document.getElementById("txtEMailVerifyJoin")).value;
}
initDisablePaste();
</script>
这不是我的想法,如果我找到了我所看到的地方,我会在这里发布。
在此处查看:Join Athineon 将其删除。
此命令在确认电子邮件地址上有效(对于此页面)! (不是密码)
关于用户界面,如果这是一个好主意,我在这里提出一个问题:https://ux.stackexchange.com/questions/1488/wondering-if-i-must-let-a-user-copy-paste-the-double-asking-confirm-e-mail-on-the
答案 2 :(得分:2)
简单的密码模式用户无法复制文本而无法将其粘贴到其他文本框中。 所以你的问题就解决了。在密码模式下同时给出了textBox
答案 3 :(得分:1)
没有有效的方法来阻止它适用于所有浏览器。即使存在这样的解决方案,用户也可以禁用JavaScript,并根据需要进行复制和粘贴。大多数用户不会复制和粘贴,因为这是为了他们自己的利益,并且是为了防止错误。
答案 4 :(得分:0)
简单方法它真正起作用<asp:CompareValidator runat="server" ID="Comp1" ControlToValidate="id" ControlToCompare="ID2" Text="Password mismatch" Font-Size="11px" ForeColor="Red" />
id1用于添加密码文本框ID
id2用于添加您的确认密码文本框ID