如何创建阻止ZK复制和粘贴的文本框? zk-textbox
中不允许剪切/复制/粘贴。
Ctrl + V 并处理鼠标右键,但拖放怎么办?
答案 0 :(得分:0)
您可以使用javascript禁用某些组件的文本拖动。有几种方法可以将这些代码应用到组件中,他以下使用sclass作为标记,如果您只需要少量文本框,这非常方便:
<textbox value="Drag Me!" />
<textbox value="Can't drag me!" sclass="nodrag" />
<textbox placeholder="Can drop here..." />
<textbox placeholder="...but not here" sclass="nodrop" />
<script type="text/javascript">
document.body.addEventListener("dragstart", function(e) {
if (e.target.className.indexOf("nodrag") > -1) {
e.preventDefault();
return false;
}
}, false);
document.body.addEventListener("dragover", function(e) {
if (e.target.className.indexOf("nodrop") > -1) {
e.preventDefault();
e.dataTransfer.effectAllowed = "none";
e.dataTransfer.dropEffect = "none";
return false;
}
}, false);
</script>
您也可以通过zk.afterLoad:
来完成zk.afterLoad('zul.inp', function() {
var xTextbox = {};
zk.override(zul.inp.Textbox.prototype, xTextbox , {
bind_ : function() {
this.$supers('bind_', arguments);
if (this.$n().className.indexOf("nodrag") > -1) {
this.domListen_(this.$n(), "onDragstart", function(event) {
event.stop();
return false;
});
}
if (this.$n().className.indexOf("nodrop") > -1) {
this.domListen_(this.$n(), "onDragover", function(event) {
event.stop();
});
}
}
});
});
这重点关注如何使用zk应用它,但实际上它只是简单的javascript。您可以在此处阅读以获取更多信息:disable text drag and drop