Dus*_*man 6 javascript asp.net validation client-side ecma262
我有一个CustomValidator,用于验证几种不同电话号码方案的电话号码.客户端javascript看起来像这样:
validatePhoneNumber(sender, args) {
cleanNumber = args.Value.replace(/\D/, "");
country = $("#" + CountryID).get(0).value;
switch (country) {
case "North America":
args.IsValid = validateNAPhoneNumber(cleanNumber);
if (!args.IsValid) sender.errormessage = "* Not a NA Phone #";
break;
case "UK":
args.IsValid = validateUKPhoneNumber(cleanumber);
if (!args.IsValid) sender.errormessage = "* Not a UK Phone #";
break;
...
}
}
Run Code Online (Sandbox Code Playgroud)
实际验证正确进行,CustomValidator始终具有正确的IsValid属性.然而,sender.errormessage似乎在此函数调用它的默认值之后被重写.如何更改errormessage值,并使其"坚持"?
小智 5
function dateofbirth(sender, args) {
var dtcDOB = document.getElementById('<%= dtcDOB.ClientID %>');
var dob = new Date(dtcDOB.value);
var currDate = new Date();
if (dtcDOB.value == "") {
args.IsValid = false;
sender.textContent = "Provide DOB.";
return;
}
args.IsValid = true;
}
Run Code Online (Sandbox Code Playgroud)
尝试sender.textContent = "your err msg"。这对我有用。
它看起来像你使用 jquery 所以你可以像这样设置错误消息:
$(sender).text("* Not a NA Phone #");
Run Code Online (Sandbox Code Playgroud)
抱歉耽搁了,但我去度假了。
我正在用一个简单的页面玩一轮,我想我明白这是如何工作的。
当您在客户端验证函数中设置发送方的错误消息时,您正在设置与ErrorMessage属性等效的内容。这与Text属性不同。ErrorMessage设置验证摘要中显示的文本,而Text属性是验证器控件中显示的文本。请注意,如果您仅设置ErrorMessage属性(在服务器上),则ErrorMessage将被复制到Text属性中。
这意味着当您设置sender.errormessage实际设置时,验证摘要中显示的文本。
希望这将有助于解决这个问题。但是,我仍然没有找到从客户端验证功能更改Text属性的方法。我也不确定为什么您的发送者对象不是验证器对象。