gpt4 book ai didi

javascript - Keyup preventdefault 不工作 Angular 6

转载 作者:行者123 更新时间:2023-11-30 14:17:13 26 4
gpt4 key购买 nike

我想在验证自定义正则表达式后停止输入任何数字,问题是条件为真但 event.preventDefault 没有阻止输入,reg ex 是以百分比形式输入 1-100 之间的带小数的值

/^(100(\.0{1,2})?|[1-9]?\d(\.\d{1,2})?)$/

这是我的意见

<input  type='text' (keyup)="preventPercentage($event)"  [(ngModel)]="value">

ts

preventPercentage(event){
var p = event.target.value
var s= p.match(/^(100(\.0{1,2})?|[1-9]?\d(\.\d{1,2})?)$/) != null
if(!s && p){
event.preventDefault();
}
}

即使条件为真,用户仍然可以输入任何值输入 100 以上的任何内容仍然有效并且事件不会阻止值

  <input  type='text' (keydown)="preventPercentage($event)"  [(ngModel)]="value">

我使用了向下键,但它允许输入 123,即三位数然后我无法使用退格键删除该数字我到底做错了什么任何人都可以建议 sol 任何帮助将不胜感激

最佳答案

试试这个。我认为根据您的要求需要对正则表达式进行更改。

preventPercentage(event){
var p = event.target.value + event.key;
var s = p.match(/^(100(\.0{1,2})?|[1-9]?\d(\.\d{1,2})?)$/) != null;
if (!s && event.keyCode !== 8) {
event.stopPropagation();
return false;
}
}

将其与 keydown 一起使用:

<input  type='text' (keydown)="preventPercentage($event)" [(ngModel)]="value">

关于javascript - Keyup preventdefault 不工作 Angular 6,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53387359/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com