我想让本网站上的电话号码字段只接受数字或数字.我没有编辑HTML代码的权限,所以可以通过定位字段的ID来使用jQuery来完成吗?如果是这样,怎么办呢?
我已经在这个网站上尝试了一些建议,到目前为止还没有任何建议.
在此先感谢您的帮助!
Nat*_*lor 24
与Jeroen的解决方案类似,这里有一个更清洁,因为它不是替换无效输入,而是完全阻止它.
$('#nbr').on('keypress', function(ev) {
var keyCode = window.event ? ev.keyCode : ev.which;
//codes for 0-9
if (keyCode < 48 || keyCode > 57) {
//codes for backspace, delete, enter
if (keyCode != 0 && keyCode != 8 && keyCode != 13 && !ev.ctrlKey) {
ev.preventDefault();
}
}
});
Run Code Online (Sandbox Code Playgroud)
Asc*_*iom 13
使用jQuery挂钩到textfield的keypress事件.在处理程序中,读取文本字段的值并使用正则表达式替换过滤掉您不想要的所有内容.
更新:未经测试的示例来说明:
jQuery("#myPhonefield").keypress(function(){
var value = jQuery(this).val();
value = value.replace(/[^0-9]+/g, '');
jQuery(this).val(value);
});
Run Code Online (Sandbox Code Playgroud)
您可以按照Jeroen的建议使用jquery的按键; 但是,我建议不使用正则表达式.沿着这些方向的东西应该适合你:
$('#test').on('keypress', function(evt) {
var charCode = (evt.which) ? evt.which : event.keyCode;
return !(charCode != 46 && charCode > 31 && (charCode < 48 || charCode > 57));
});
Run Code Online (Sandbox Code Playgroud)
要处理粘贴,您可以对模糊或焦点执行正则表达式检查:
$('#test').on('focusout', function() {
var value = $(this).val();
$(this).val(value.replace(/[^0-9]/g, ''));
});
Run Code Online (Sandbox Code Playgroud)