我想以多种形式限制输入,并且尝试在keyup事件中从输入中删除字母。问题是它似乎仅在type="text"输入上起作用,但我在type="number"输入上需要它。
小提琴。
注意:我需要在Firefox和IE上工作。在chrome上,此功能不是必需的。
$(function(){
$('input[type="number"], [type="text"]').keyup(function(e) {
if(this.value!='-')
while(isNaN(this.value))
this.value = this.value.split('').reverse().join('').replace(/[\D]/i,'')
.split('').reverse().join('');
})
.on("cut copy paste",function(e){
e.preventDefault();
});
});Run Code Online (Sandbox Code Playgroud)
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<input type="number">
<input type="text">Run Code Online (Sandbox Code Playgroud)
元素选择器和属性选择器之间不应有空格。
input [type="number"]
Run Code Online (Sandbox Code Playgroud)
应该:
input[type="number"]
Run Code Online (Sandbox Code Playgroud)
之所以[type="text"]起作用,是因为它匹配所有类型属性都设置为的元素text。确实应该是:
input[type="text"]
Run Code Online (Sandbox Code Playgroud)
以及整个选择器:
'input[type="number"],input[type="text"]'
Run Code Online (Sandbox Code Playgroud)
函数还存在问题-两个split('').reverse().join('')?没有必要。
此功能的更好方法是:
$('input[type="number"], input[type="text"]').keyup(function(e) {
this.value = this.value.replace(/[^0-9-]/i, '');
})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
951 次 |
| 最近记录: |