如何在文本字段中禁用粘贴

时间:2014-01-21 10:36:55

标签: javascript struts2 textfield

我有2个文本字段,第一个用于电子邮件,第二个用于确认电子邮件。用户必须无法在struts 2的confirm s:textfield中粘贴(ctrl + v或鼠标)任何内容。

我创建的所有示例都只使用简单的html,我可以使用Struts 2的文本字段吗?

2 个答案:

答案 0 :(得分:2)

  

其他示例的问题是所有内容都基于html编辑文本中的“onPaste”事件,并且Struts2的文本字段没有此事件。

对于具有:的Struts UI标记,不是问题

Dynamic Attributes Allowed: true

<s:textfield/>以及<s:file/><s:textarea/>和其他人拥有它,as you can read in the documentation(在参数下)。

这意味着您在标记中编写的所有内容(不是Struts UI标记属性)将在生成的HTML中按原样报告,这样您就可以使用新功能而无需强制Apache发布新版本的标记。 / p>

答案 1 :(得分:1)

好的,我自己找到了解决方案,在jsp中:

<s:textfield name="confermaEmail" id="idConfermaEmail" size="30"  onFocus="disablePaste()"/>

我使用了javascript:

function disablePaste(){
    var input = document.getElementById("idConfermaEmail");
    if (input)
       input.onpaste = function(){return false;};
}

我在IE 10和Chrome上试过这个。

然而,像@Andrea Ligios在另一条评论中所说,也可以在struts 2上使用onPaste事件。

编辑:最好使用onFocus而不是onPaste,因为onPaste事件仅在第一次粘贴后才会阻止“粘贴”。相反onFocus会阻止焦点上的“粘贴”,所以在第一次粘贴之前。