我有2个文本字段,第一个用于电子邮件,第二个用于确认电子邮件。用户必须无法在struts 2的confirm s:textfield中粘贴(ctrl + v或鼠标)任何内容。
我创建的所有示例都只使用简单的html,我可以使用Struts 2的文本字段吗?
答案 0 :(得分:2)
其他示例的问题是所有内容都基于html编辑文本中的“onPaste”事件,并且Struts2的文本字段没有此事件。
对于具有:的Struts UI标记,不是问题
这意味着您在标记中编写的所有内容(不是Struts UI标记属性)将在生成的HTML中按原样报告,这样您就可以使用新功能而无需强制Apache发布新版本的标记。 / p>
Dynamic Attributes Allowed: true
<s:textfield/>
以及<s:file/>
,<s:textarea/>
和其他人拥有它,as you can read in the documentation(在参数下)。
答案 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会阻止焦点上的“粘贴”,所以在第一次粘贴之前。