在asp.Net中调用java脚本函数正则表达式验证器失败
Call to a java script function Regular Expression Validator to fail In asp.Net
我有一个验证文本框的<asp:RegularExpressionValidator>
,但我也有一个javascript函数,防止在文本框中输入非数值。当使用表达式验证器,它的工作很好,但只要我添加onkeydown="return jsDecimals(event);"
到文本框调用jsDecimals()
函数验证器不工作。我做错了什么?
asp Code
<asp:TextBox ID="TextBox2" runat="server" CssClass="form-control" CausesValidation="true" MaxLength="13" onkeydown="return jsDecimals(event);"></asp:TextBox>
<asp:Button ID="Button5" runat="server" Text="Retrieve" CssClass="btn btn-default" OnClick="Button5_Click"/>
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" CssClass="tooltip-arrow"
ErrorMessage="ID must be 13 Numeric characters" ControlToValidate="TextBox2" ValidationExpression="^[0-9]{13}$">
</asp:RegularExpressionValidator>
JavaScript: function jsDecimals(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if (key != null) {
key = parseInt(key, 10);
if ((key < 48 || key > 57) && (key < 96 || key > 105)) {
if (!jsIsUserFriendlyChar(key, "Decimals")) {
return false;
}
}
else {
if (evt.shiftKey) {
return false;
}
}
}
return true;
function jsIsUserFriendlyChar(val, step) {
// Backspace, Tab, Enter, Insert, and Delete
if (val == 8 || val == 9 || val == 13 || val == 45 || val == 46) {
return true;
}
// Ctrl, Alt, CapsLock, Home, End, and Arrows
if ((val > 16 && val < 21) || (val > 34 && val < 41)) {
return true;
}
if (step == "Decimals") {
if (val == 190 || val == 110) { //Check dot key code should be allowed
return true;
}
}
// The rest
return false;
}
语法错误。查看下面我对你代码的评论。您似乎没有在return true;
之后关闭函数,并且您最终在第一个函数中声明下一个函数。
function jsDecimals(e) {
var evt = (e) ? e : window.event;
var key = (evt.keyCode) ? evt.keyCode : evt.which;
if (key != null) {
key = parseInt(key, 10);
if ((key < 48 || key > 57) && (key < 96 || key > 105)) {
if (!jsIsUserFriendlyChar(key, "Decimals")) {
return false;
}
} else {
if (evt.shiftKey) {
return false;
}
}
}
return true; // <-- what's this? is there supposed to be a closing bracket after this line?
function jsIsUserFriendlyChar(val, step) {
.
.
.
相关文章:
- 调用正则表达式匹配的函数
- 是否有任何Javascript函数从指定的索引中进行正则表达式匹配
- 用正则表达式在js中进行函数修剪
- Javascript错误正则表达式不是函数
- 为什么当我在正则表达式中放置空格键时,我的 Javascript test() 函数失败了
- Javascript的split函数中的正则表达式
- Javascript:我在这里如何滥用正则表达式构造函数
- 正则表达式或函数,用于提取传递给函数的所有参数
- 在Javascript的递归函数中使用正则表达式进行解析
- 在php中,使用正则表达式的函数中的Onclick事件
- 如何使用正则表达式识别javascript函数
- 正则表达式回调函数只执行一次
- 如何使字符“[”和“]”作为正则表达式()函数中的模式
- 将函数调用与 JS 正则表达式匹配
- 正则表达式类似于Javascript中的参数函数
- 正则表达式中的 test() 函数
- 为过滤器创建javascript正则表达式函数
- 如何修复这个正则表达式函数
- 传递变量来替换正则表达式函数
- 正则表达式函数4个字母和4个数字