javascript - Wie kann ich verhindern, dass bei der Eingabe „type=number' Pluszeichen, Minuszeichen und mehrere Dezimalstellen hinzugefügt werden?
给我你的怀抱
给我你的怀抱 2017-05-16 13:37:46
0
6
1386

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~~~

给我你的怀抱
给我你的怀抱

Antworte allen(6)
为情所困

用正则匹配 '^[-]?[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>
某草草

把你的js贴出来看看

大家讲道理

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

滿天的星座

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

淡淡烟草味

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

phpcn_u1582

<input type="tel" />

Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage