Heim  >  Fragen und Antworten  >  Hauptteil

javascript - Wie kann ich verhindern, dass bei der Eingabe „type=number“ Pluszeichen, Minuszeichen und mehrere Dezimalstellen hinzugefügt werden?

Ich danke Ihnen allen im Voraus. Aus geschäftlichen Gründen können in dieser Eingabe nur Zahlen eingegeben werden, die Plus- und Minuszeichen können nicht eingegeben werden.
Ich wollte ursprünglich den Wert in der Eingabe beurteilen und die Pluszeichen, Minuszeichen und redundanten Punkte manuell löschen, aber ich habe festgestellt, dass der Wert der Eingabe in eine leere Zeichenfolge umgewandelt wurde, sobald der eingegebene Wert unzulässig ist. Auf diese Weise kann ich den Wert in der Eingabe nicht erhalten.
Ich habe lange darüber nachgedacht, kenne aber die Lösung nicht. Bitte helfen Sie mir, danke~
Übrigens habe ich die Seite in Vue geschrieben~~~

给我你的怀抱给我你的怀抱2713 Tage vor1358

Antworte allen(6)Ich werde antworten

  • 为情所困

    为情所困2017-05-16 13:39:46

    用正则匹配 '^[-]?[0-9]*\.?[0-9]+(eE?[0-9]+)?$'

    <input type="text" />

    可以用这种方式,监听input值的变化,发现验证不过就提示。

    <!DOCTYPE html>
    <html>
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <title>Welcome</title>
    </head>
    <body>
    <form>
        <input id="inputNumber" type="text" name="test" onblur="checkNumber()">
    </form>
    
    <script type="text/javascript">
     function checkNumber(){
        var inputNumber = document.getElementById('inputNumber').value;
        if(!/^[-]?[0-9]*\.?[0-9]+(eE?[0-9]+)?$/.test(inputNumber)){
            alert('Please input a valid number!');
            return false;
        }
    }
    </script>
    </body>
    </html>

    Antwort
    0
  • 某草草

    某草草2017-05-16 13:39:46

    把你的js贴出来看看

    Antwort
    0
  • 大家讲道理

    大家讲道理2017-05-16 13:39:46

    onkeyup="this.value=this.value.replace(/D/g,'')" onafterpaste="this.value=this.value.replace(/D/g,'')"

    Antwort
    0
  • 滿天的星座

    滿天的星座2017-05-16 13:39:46

    type=number应该是无法直接限制用户不能输入正负号、e、多个小数点的。
    还是需要通过input的value来判断。
    至于输入的值不合法,input的value被转化成空字符串的问题,
    可以将input的type改成text,然后使用正则和replace去除非数字和多个小数点就行了。

    Antwort
    0
  • 淡淡烟草味

    淡淡烟草味2017-05-16 13:39:46

    那你可以用 v-model绑定一个值,然后通过watch 来监听这个值,但你找到有非法的值得时候,删掉非法的字符串即可

    Antwort
    0
  • phpcn_u1582

    phpcn_u15822017-05-16 13:39:46

    <input type="tel" />

    Antwort
    0
  • StornierenAntwort