目前我有以下代码

<input type="number" />

结果是这样的

右边的选择器允许数字变为负数。我该如何预防呢?

我对使用type="number"有疑问,它造成的问题比它解决的要多,我无论如何都要检查它,所以我应该回到使用type="text"吗?


当前回答

我认为使用类型文本是最好的,而不是数字,因为使用类型=数字,你将面临一些问题,如输入字段的方向键和上、下键的值变化。


<input type="text" onkeypress="return event.charCode>=48 && event.charCode<=57" />

其他回答

你可以使用以下命令使type="number"只接受正数:

<input type="number" step="1" pattern="\d+">

试试这个:

Yii2 : Validation rule 

    public function rules() {
    return [
['location_id', 'compare', 'compareValue' => 0', 'operator' => '>'],
        ];
}

添加一个min属性

<输入类型=“数字” min=“0”>

这取决于你想要多精确。如果你想只接受整数,那么:

<输入类型=“数字” 分钟=“1” 步数=“1”>

例如,如果你想要浮点数,小数点后有两位数字:

<输入类型=“数字” min=“0.01” 步数=“0.01”>

如果需要文本输入,该模式也可以工作

<input type="text" pattern="\d+">