html - 输入类型号限制长度并允许 + 符号
问题描述
我正在尝试创建一个以国家代码作为输入的框。我想限制用户只能输入 3 个开头带有 + 号的数字。我设法将长度限制为 3,但我无法在输入框中输入“+”。我不知道该怎么做。请帮助。提前致谢。我正在尝试的是用户只能输入 +123 或 +345。他无法输入的任何其他模式。这是我所做的:
<input type="number" [(ngModel)]="phnNumber" oninput="this.value=this.value.slice(0,this.maxLength)" maxlength="3">
解决方案
尝试使用(onkeypress)
事件并处理“+”符号。的十进制 ASCII 码+
是 43:
<input type="number"
[(ngModel)]="phnNumber" oninput="this.value=this.value.slice(0,this.maxLength)"
(keypress)="isNumberKey($event)
maxlength="3">
打字稿:
isNumberKey(event)
{
console.log(event.which)
var charCode = (event.which) ? event.which : event['keyCode']
if (charCode != 43 && charCode > 31 && (charCode < 48 || charCode > 57))
return false;
return true;
}
此外,默认情况下,maxLength
不适用于type="number"
. 但是,您可以使用pattern
属性仅允许数字,然后使用属性设置输入类型的最大长度maxLength
:
<input
type="text"
pattern="\d*"
maxlength=3
(keypress)="isNumberKey($event)"
>
更新:
要+
在数字的开头添加:
HTML:
<input
[(ngModel)]="test"
type="text"
pattern="/^\+[0-9]{2}$/"
maxlength=3
(keypress)="isNumberKey($event)"
>
打字稿:
test:number;
isNumberKey(event)
{
console.log(event.which)
var charCode = (event.which) ? event.which : event['keyCode']
if (charCode != 43 && charCode > 31 && (charCode < 48 || charCode > 57))
return false;
if(this.test && this.test.toString() && this.test.toString().length >0
&& charCode == 43)
return false;
return true;
}
推荐阅读
- reactjs - 以 React 多部分表单提交文件
- r - R - 用数字替换字符串时避免连接
- sftp - SFTP 服务器的 Web 界面
- android - UPNP android 错误代码 710 不支持搜索模式
- php - OctoberCMS 制作属于守护进程的文件夹和文件
- wordpress - 具有 Swift 性能的 WP 站点加载未使用的图像
- python - 'DataFrame' 对象没有属性 '_check_fit_params'
- spring-boot - 在 Spring-Boot 中启用 CORS 时是否仍需要基本身份验证?
- javascript - 当我尝试使用 JS/JQuery 在新窗口中写入时出现问题
- sql - SQL 显示前一个值,直到给定值改变