Javascript 文本框中的验证文本在返回false后仍显示文本
我有一个文本框,我只想输入数值。现在我有这个函数Javascript 文本框中的验证文本在返回false后仍显示文本,javascript,asp.net,regex,Javascript,Asp.net,Regex,我有一个文本框,我只想输入数值。现在我有这个函数 function validate(evt) { var theEvent = evt || window.event; var key = theEvent.keyCode || theEvent.which; key = String.fromCharCode(key); var regex = /[0-9]|\./; if (!regex.test(ke
function validate(evt) {
var theEvent = evt || window.event;
var key = theEvent.keyCode || theEvent.which;
key = String.fromCharCode(key);
var regex = /[0-9]|\./;
if (!regex.test(key)) {
theEvent.returnValue = false;
if (theEvent.preventDefault) theEvent.preventDefault();
}
}
这是我的aspx文本控件
<asp:Panel ID="PanelAddPhoneNumber" runat="server" Style="display: none; min-width: 500px; min-height: 500px;" Title="Add Phone Numbers">
<asp:UpdatePanel ID="UpdatePanelAddPhoneNums" runat="server" UpdateMode="Always">
<ContentTemplate>
<table>
<tr>
<td>
<asp:TextBox runat="server" ID="txtPhoneNum" type="text" AutoPostBack="true" />
</td>
</tr>
</table>
</ContentTemplate>
</asp:UpdatePanel>
</asp:Panel>
我的函数被调用,一切似乎都“正常”,但如果我按下“G”,它将在我的函数中命中if并返回false,还将命中theEvent.preventedefualt()
但是我的文本框仍然显示“G”?!这是不对的
编辑:我在我完整的aspx侧面板中添加了。我也试过了
$(文档).ready(函数(){
$('').keydown(函数(事件){
但似乎什么都不起作用。
也许更新面板在某种程度上造成了干扰?我很抱歉,如果情况是OP中所述的话,我相信您的解决方案会解决它,两个版本都会对它们进行投票。您可以直接使用。它很简单:)
编辑:
如果要在不使用任何lib的情况下对其进行验证,请参见下面的示例:
$(document).ready(function () {
$("#txtPhoneNum").keydown(function (event) {
// Allow: backspace, delete, tab, escape, and enter
if (event.keyCode == 46 || event.keyCode == 8 || event.keyCode == 9 || event.keyCode == 27 || event.keyCode == 13 ||
// Allow: Ctrl+A
(event.keyCode == 65 && event.ctrlKey === true) ||
// Allow: home, end, left, right
(event.keyCode >= 35 && event.keyCode <= 39)) {
// let it happen, don't do anything
return;
}
else {
// Ensure that it is a number and stop the keypress
if (event.shiftKey || (parseInt(event.target.value) == 1 && event.keyCode > 48) || (event.keyCode < 48 || event.keyCode > 57) && (event.keyCode < 96 || event.keyCode > 105)) {
event.preventDefault();
}
}
});
});
$(文档).ready(函数(){
$(“#txtPhoneNum”).keydown(函数(事件){
//允许:退格、删除、制表符、转义和回车
如果(event.keyCode==46 | | | event.keyCode==8 | | event.keyCode==9 | | event.keyCode==27 | | event.keyCode==13||
//允许:Ctrl+A
(event.keyCode==65&&event.ctrlKey==true)||
//允许:起始、结束、左、右
(event.keyCode>=35&&event.keyCode是的,但我正在为客户开发软件,所以不幸的是,我不太清楚哪些版权限制插件可能是免费的。我只是不想通过使用预先制作的东西来冒险。但我很感谢你的回答。是的,但看起来还是没有来解决我的问题。我的断点显示我命中了event.PreventDefault(),但它仍然允许角色通过