gpt4 book ai didi

javascript - 在 asp.Net 中调用 javascript 函数正则表达式验证器失败

转载 作者:行者123 更新时间:2023-12-03 05:42:13 25 4
gpt4 key购买 nike

我有一个<asp:RegularExpressionValidator>验证文本框,但我还有一个 javascript 函数,可以防止在文本框中输入非数字值。当使用表达式验证器时,它工作正常,但是一旦我添加 onkeydown="return jsDecimals(event);"到文本框调用jsDecimals()验证器功能不起作用。我做错了什么??

ASP代码

<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 - 在 asp.Net 中调用 javascript 函数正则表达式验证器失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40482527/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com