相关疑难解决方法(0)

不推荐使用KeyboardEvent.keyCode.这在实践中意味着什么?

根据MDN,我们绝对应该使用.keyCode属性.它已被弃用:

https://developer.mozilla.org/en-US/docs/Web/API/KeyboardEvent/keyCode

在W3学校,这个事实被淡化了,并且只有一个附注说明仅.keyCode提供兼容性,并且最新版本的DOM事件规范建议使用该.key属性.

问题是.key浏览器不支持,那么我们应该使用什么?有什么我想念的吗?

javascript key keycode deprecated

76
推荐指数
6
解决办法
4万
查看次数

限制文本输入值的正确方法(例如,仅限数字)

是否可以实现一个input允许只在内部键入数字而无需手动处理event.target.value

在React中,可以定义value属性,然后输入更改将基本上绑定到该值(无法在不value更改的情况下修改它).见例子.它没有任何努力就可以正常工作.

在Angular 2中,可以定义[value],但它只是初始设置值,然后input不会阻止修改.

我正在玩,ngModel[value] / (input)看到例子.

但在这两个实现中都存在一个基本问题:

  1. 键入10时(模型值为10;输入值为10) - 正确
  2. 当你输入10d之后(模型值为10 - 未修改,所有非数字都被删除;输入值为10d) - 不正确,因为模型值与之前相同
  3. 键入10d3时 - (模型值为103;输入值为103) - 正确

如何做到这一点(从第一眼看)组件,无需手动处理event.target.value?...

更新我不是在寻找原生HTML5 input[number]元素.这里输入的数字仅用于示例 - 当我需要限制输入文本时,可能会有更多任务.

此外,input[number]1)不限制我打字10ddd和2)(不太重要)包含我不需要的箭头.

这里的问题是阻止用户输入超出限制值的内容,而不是允许输入任何内容在之后验证

angular

33
推荐指数
7
解决办法
10万
查看次数

Angular 2 Custom Validator:检查输入值是否为整数?

在Angular2项目中,我需要验证一些输入.如何轻松检查输入值是否为整数?

我尝试使用 Number(control.value)哪个返回0空字段 - 不好.

或者parseInt(control.value,10)不考虑空格:

如果我有类似的东西:1空格0,24 = 1 ,024它返回1 - 它通过验证器没有错误.

Lodash的功能如下:_.isInteger(control.value)或者_.isNumeric(control.value) // return false every time- 是预期的,因为输入值是字符串而不是数字.

组合这样的方法会产生一个带有许多if/else语句的混乱函数,即便如此,我也不确定我是否得到了所有边缘情况.我当然需要更直接的方法.有任何想法吗?

javascript validation user-input angular

7
推荐指数
2
解决办法
1万
查看次数

HTML数字输入删除小数点?

我在表单上输入数字时遇到问题.当我输入一个数字,例如88.2并提交它时,没有问题.但是当这个其他人做同样的事情时,你可以在php代码中看到如果你从数字输入中回显变量,它已经删除了小数点(.).

当他使用逗号时它不会删除他的小数点,但是当我使用逗号时它会删除它.有没有办法解决这个问题,并让它只接受"." 作为小数点?

这是输入:

<input id="version" name="version" step="0.1" min="1.0" max="250.0" type="number" class="input-small" placeholder="87.2"></input>
Run Code Online (Sandbox Code Playgroud)

PHP代码中没有任何内容只是不寻常的

echo $_POST['version'];
Run Code Online (Sandbox Code Playgroud)

input-small css:

.input-small {
  width: 90px;
}
Run Code Online (Sandbox Code Playgroud)

html input point

6
推荐指数
1
解决办法
2万
查看次数

将输入类型数限制为角度2中的2位小数

我在html页面上有许多输入框.我想限制用户输入2位小数后的任何数字.

目前尝试应用html 5输入Step ="0.00"但不起作用.

任何打字稿解决方案也都可以

validation input typescript angular

5
推荐指数
1
解决办法
1万
查看次数

仅以 Angular 输入数字

我正在尝试实现一个输入字段,其中只允许数字键。为此,我已成功在表单中实现了仅数字验证。

但这里的要求是,除了数字键之外,其他键都不能工作。为此,我已经绑定了实现 @HostListener

在这种情况下,当我们单击字母键时,它不会显示在输入字段中,但会分配该字母的值。

请检查代码:HostListener代码:

import { Directive, ElementRef, HostListener, Input } from '@angular/core';
import { NgControl } from '@angular/forms';

@Directive({
  selector: 'input[numbersOnly]'
})
export class NumberDirective {

  constructor(private _el: ElementRef) { }

  @HostListener('input', ['$event']) onInputChange(event) {
    const initalValue = this._el.nativeElement.value;
    this._el.nativeElement.value = initalValue.replace(/[^0-9]*/g, '');
    if ( initalValue !== this._el.nativeElement.value) {
      event.stopPropagation();
    }
  }

}
Run Code Online (Sandbox Code Playgroud)

HTML:

Type anything other than numbers, the change is fired even if the textfield content does not change :
<br/>
<input type="text" [(ngModel)]="value" (ngModelChange)="onChange($event)" numbersOnly/> …
Run Code Online (Sandbox Code Playgroud)

angular-directive angular

4
推荐指数
1
解决办法
2万
查看次数