如何检索 GWT 文本框中的 PASTE(复制粘贴)事件的值?
SO 成员大家好,
我想阻止用户在我的文本框中复制粘贴值,当且仅当这些值不符合特定条件时。
例如,我创建了一个 DigitsOnlyTextBox ,它将用于电话号码。 将值复制粘贴到其中
this.sinkEvents(Event.ONPASTE);
我已经做到了,因此只能在框中输入 Character.isDigit
字符,并且用户无法使用 :和
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
// Permet d'empêcher le copier-coller, donc d'entrer des caractères non-numériques
if (event.getTypeInt() == Event.ONPASTE) {
event.stopPropagation();
event.preventDefault();
}
}
但我想验证复制粘贴是否字符串是“仅数字”,如果是这样,则让事件发生(因此添加文本)。
长话短说:博士: 请参阅标题
感谢您的宝贵时间。 真挚地。
Hello fellow SO members,
I want to prevent the user from copy-pasting values in my TextBox IF AND ONLY IF the values do not respect a certain condition.
For instance, I created a DigitsOnlyTextBox which will be used for phone numbers.
I already made it so only Character.isDigit
characters can be typed into the box, and the user cannot copy-paste values into it, using :
this.sinkEvents(Event.ONPASTE);
and
public void onBrowserEvent(Event event) {
super.onBrowserEvent(event);
// Permet d'empêcher le copier-coller, donc d'entrer des caractères non-numériques
if (event.getTypeInt() == Event.ONPASTE) {
event.stopPropagation();
event.preventDefault();
}
}
But I'd like to verify if the copy-pasted String is "digits only" and if so, let the event happen (therefore the text added).
tl;dr :
see title
Thank you for your time.
Sincerely.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
根据MDC:
(IMO),您最好让“粘贴”发生,然后“重写”文本框的值以去除非数字(实际上,我什至宁愿在 ValueChange 上执行此操作)仅)或者当其值不是纯数字时简单地将框标记为无效(例如,IntegerBox 就是这样做的)。
According to the MDC:
IMO, you'd better let the "paste" happen and then "rewrite" the textbox's value to strip non-numerics (actually, I'd even rather do it onValueChange only) or simply flag the box as invalid when its value isn't numeric-only (this is what IntegerBox does for instance).
只需将旧值保存在局部变量中,然后在执行逻辑的事件之后立即执行,如果该值不正确,则保留旧文本。
Just save the old value in a local variable and right after the event you excecute your logic and if the value is not ok just keep the old text.