Javascript 通过右键单击进行复制/粘贴的客户端表单验证
我使用以下行(Struts1语法)显示一个文本字段,并允许通过Javascript进行一些客户端检查Javascript 通过右键单击进行复制/粘贴的客户端表单验证,javascript,html,jsp,struts-1,Javascript,Html,Jsp,Struts 1,我使用以下行(Struts1语法)显示一个文本字段,并允许通过Javascript进行一些客户端检查 <html:text styleId="myField" property="myProperty" onkeyup="function()" /> 我的目的是在表单字段中输入文本时显示消息并禁用下拉列表(无论内容如何)。onkeyup属性适用于所有情况,但用户使用鼠标右键单击粘贴文本时除外 似乎onmousedown和onmousedup事件不会注意到右键单击。这同样适用于o
<html:text styleId="myField" property="myProperty" onkeyup="function()" />
我的目的是在表单字段中输入文本时显示消息并禁用下拉列表(无论内容如何)。onkeyup
属性适用于所有情况,但用户使用鼠标右键单击粘贴文本时除外
似乎onmousedown
和onmousedup
事件不会注意到右键单击。这同样适用于onfocus
onchange
仅在焦点丢失时进行检查,但是用户可以通过粘贴数据并单击表单提交(与onblur
相同)
onmouseout
在IE8中有些工作(我可以破坏功能),但在ChromeV41.0.2272.89中根本不工作
是否有人在鼠标右键单击时遇到客户端表单检查?我想跨浏览器介绍这个用例,但不能指望最终用户总是通过键盘快捷键进行粘贴 我选择了上面评论中建议的jQuery解决方案 最初我有这个功能:
$(document).ready(function(){
$('#myField').bind("paste",function(e) {
toggleFunction(); //preserve already existing function in use with other cases
});
});
但是后来发现,虽然函数将在用户粘贴之后运行,但它将在实际粘贴文本之前运行
例如:
$(document).ready(function(){
$('#myField').bind("paste",function(e) {
document.getElementById("dropdownID").disabled = true;
document.getElementById("showMessage").style.visibility = "visible";
});
});
是否要禁用粘贴?你看到了吗:?@Aleksandr不幸的是,我的工作是对一个应用程序进行增强,在这个应用程序中,用户需要复制+粘贴。但是,post中似乎有一个绑定到粘贴的jquery函数。我会调查的,谢谢。如果有人解释了上面的jQuery行为并提供了一个替代方案,我会改变我接受的答案。