输入类型号在Firefox中不起作用

时间:2016-08-23 12:48:27

标签: html5 firefox

我有一个问题。我有一个类型为number的输入字段,但它在mozila firefox浏览器中使用任何字母。它在chrome中工作得很好但在firefox中不起作用。我需要它应该用作chrome和不接受任何字母表。我使用的是Mozila firefox 48.0版。我正在解释下面的代码。

<input type="number"  class="form-control oditek-form"  ng-model="type" name="type" step="1" min="0" placeholder="Add Type">  

请帮帮我。

2 个答案:

答案 0 :(得分:1)

我也使用firefox,我有同样的问题开发我的输入类型编号键入字符和空格等... 我找到了tag pattern =“[1-9]”的解决方案,但不幸的是它对我不起作用。在没有任何结果的搜索之后,我决定开发自己的功能。 无论如何我在这个例子中使用角度2,它几乎类似于javascript,所以你可以在每种情况下使用这个代码: 这是html:

<input class="form-control form-control-sm" id="qte" type="number"  min="1" max="30" step="1" [(ngModel)]="numberVoucher"
     (keypress)="FilterInput($event)" />

这是函数FilterInput:

FilterInput(event: any) {
        let numberEntered = false;
        if ((event.which >= 48 && event.which <= 57) || (event.which >= 37 && event.which <= 40)) { //input number entered or one of the 4 directtion up, down, left and right
            //console.log('input number entered :' + event.which + ' ' + event.keyCode + ' ' + event.charCode);
            numberEntered = true;
        }
        else {
            //input command entered of delete, backspace or one of the 4 directtion up, down, left and right
            if ((event.keyCode >= 37 && event.keyCode <= 40) || event.keyCode == 46 || event.which == 8) {
                //console.log('input command entered :' + event.which + ' ' + event.keyCode + ' ' + event.charCode);
            }
            else {
                //console.log('input not number entered :' + event.which + ' ' + event.keyCode + ' ' + event.charCode);
                event.preventDefault();
            }
        }
        // input is not impty
        if (this.validForm) {
            // a number was typed
            if (numberEntered) {
                let newNumber = parseInt(this.numberVoucher + '' + String.fromCharCode(event.which));
                console.log('new number : ' + newNumber);
                // checking the condition of max value
                if ((newNumber <= 30 && newNumber >= 1) || Number.isNaN(newNumber)) {
                    console.log('valid number : ' + newNumber);
                }
                else {
                    console.log('max value will not be valid');
                    event.preventDefault();
                }
            }
            // command of delete or backspace was types
            if (event.keyCode == 46 || event.which == 8) {
                if (this.numberVoucher >= 1 && this.numberVoucher <= 9) {
                    console.log('min value will not be valid');
                    this.numberVoucher = 1;
                    //event.preventDefault();
                    this.validForm = true;
                }
            }
        }
        // input is empty
        else {
            console.log('this.validForm = true');
            this.validForm = false;
        }
    };

在这个函数中,我只需要按下数字,方向,删除键进入。

答案 1 :(得分:0)

注意:Internet Explorer 9及更早版本或Firefox中不支持该标记的min属性。

来源:http://www.w3schools.com/tags/att_input_min.asp