我必须验证文本框以仅输入字母数字字符。
函数validateAlphaNumeric(evt, txtbox)
在onkeypress
上触发textbox
事件。
下面是用Javascript编写的函数。
但如果我按Ctrl + V,我无法获得textbox
的值。我需要验证用户是否粘贴。
任何人都可以建议我吗?
function validateAlphaNumeric(evt, textBox) {
/* File Description : Numbers,Characters,Hyphen(-),Slash(/)and Space */
var charCode;
charCode = (evt.which) ? evt.which : window.event.keyCode;
if (charCode >= 97 && charCode <= 122 || charCode >= 65 && charCode <= 90 || charCode == 8 || charCode >= 48 && charCode <= 57 || charCode == 45) {
return true;
}
else {
var errorMsg = document.getElementById(textBox.id + 'Error');
if (errorMsg != null) {
errorMsg.innerText = "Please Enter Alpha – Numeric Characters only";
}
return false;
}
}
答案 0 :(得分:0)
验证该TextBox的 onblur()事件的文本框。你的问题肯定会得到解决。
答案 1 :(得分:0)
有oninput
事件,它完全符合您的要求。
https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers.oninput
在处理程序中,检查文本框的value
属性是否仅包含允许的字符。
请注意,IE9对此事件有错误支持 - 基本上它不会识别字符删除,但它不会影响您,因为您只能通过删除内容使文本无效。有关更多详细信息,请参见此处:
http://help.dottoro.com/ljhxklln.php
如果你不能使用oninput
因为真的需要支持IE8-IE7(暗示:你真的不想),你可以修改你的通过收听onpaste
事件来获取文本粘贴事件的代码。
答案 2 :(得分:0)
我找到了答案: 在onpaste活动上尝试这个。 肯定会解决。
我试过了:
function onPaste(evt, textBox) {
pastedText = window.clipboardData.getData('Text');
if (pastedText matches regExp) {
return true;
} else {
//display error msg
return false;
}
}
此致..