例如,在输入标记中我们有一个名为type的字段,如果我们输入type =" numeric"它不允许输入除数字之外的任何内容。
如果我使用td contenteditable,我怎么能阻止用户输入该td标签中的数字以外的任何内容。
答案 0 :(得分:0)
试试这个
$('#text').keypress(function(e) {
if (!(e.which >= 48 && e.which <= 57)) {
return false;
}
});
$('#text').keypress(function(e) {
if (!(e.which >= 48 && e.which <= 57)) {
return false;
}
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td>Name
<td>
<p contenteditable="true" id="text">000</p>
</td>
</tr>
</table>
答案 1 :(得分:0)
您可以在jQuery中使用.keydown()
方法。更清洁,简洁。请参阅下面的代码段
$("td").on( "keydown",function(event) {
if( isNaN(String.fromCharCode(event.which))){
event.preventDefault();
}
})
&#13;
td {
padding:3px;
border:1px solid red;
font-size:18px;
line-height:24px;
width:100px;
height:50px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td contenteditable="true"></td>
</tr>
</table>
&#13;
另外,如果您想允许backspace
和del
键(可能有用),请将代码更改为
$("td").on( "keydown",function(event) {
if(event.which != 8 && event.which !=46 && isNaN(String.fromCharCode(event.which))){
event.preventDefault();
}
})
&#13;
td {
padding:3px;
border:1px solid red;
font-size:18px;
line-height:24px;
width:100px;
height:50px;
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<table>
<tr>
<td contenteditable="true"></td>
</tr>
</table>
&#13;
答案 2 :(得分:0)
您已在此处添加了角度标记。
这可能是angular directive:
<强>的src / onlyNumeric.directive.ts 强>
import { Directive, ElementRef, HostListener } from '@angular/core'; @Directive({ selector: '[onlyNumeric]' }) export class OnlyNumericDirective { @HostListener('input') onContentChange() { this.el.nativeElement.innerText = this.el.nativeElement.innerText.replace(/\D/g,'') } constructor(private el: ElementRef) { } }