我有一个验证电话号码为几个不同的电话编号方案一的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;
...
}
}
实际的检验发生不当,以及具有的CustomValidator在任何时候都正确的IsValid属性。 该sender.errormessage,然而,似乎被改写紧接在该函数调用它的默认值。 我怎样才能改变errormessage的价值,并使其“棒”?
Answer 1:
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;
}
尝试sender.textContent = "your err msg"
。 它为我工作。
Answer 2:
最好的方式来改变验证控件的错误消息图像:
sender.innerHTML = "YOUR HTML WITH ANYTHING COME HERE"
Answer 3:
要更改错误信息,像这样做:
if (!args.IsValid) document.getElementById('<%= cstPhoneNumber.ClientID %>').errormessage = "* Not a NA Phone #";
要更改文本,这样做:
if (!args.IsValid) document.getElementById('<%= cstPhoneNumber.ClientID %>').innerHTML = "* Not a NA Phone #";
cstPhoneNumber
应该由你的验证控件的名称来代替。
Answer 4:
它看起来你使用jQuery,所以你可以设置这样的错误信息,如:
$(sender).text("* Not a NA Phone #");
编辑:
抱歉耽搁,但我去度假。
我是打了一个回合简单的页面 ,我想我理解它是如何工作的。
当您在客户端验证功能设置的errormessage的发件人您正在设置的等同的ErrorMessage属性。 这是从不同的文本属性。 该的ErrorMessage设置在验证摘要中显示的文本,而文本属性在验证控件中显示的文本。 请注意,如果您只设置的ErrorMessage属性(在服务器上),那么的ErrorMessage将被复制到文本属性。
这意味着,当你设置sender.errormessage
您的实际设置显示在验证摘要文本。
希望这将有助于它清除掉。 但是,我还没有看到一个方法来改变文本从客户端验证功能属性。 我也不清楚为什么你发送对象不是验证对象。
Answer 5:
sender.innerText = "Your message"
将起作用。
Answer 6:
我认为问题是,有客户端上没有'errormessage的财产。 自定义验证呈现一个<span>
标签与对应的自定义验证控制的id属性的ID,以显示该错误消息。 为了验证失败时,你需要做的财产以后这样的设置显示的文本。
...
case "North America":
args.IsValid = validateNAPhoneNumber(cleanNumber);
if (!args.IsValid)
document.getElementById(sender.id).innerText = "* Not a NA Phone #";
break;
...
Answer 7:
只是删除文本和的ErrorMessage的所有实例自定义验证标签的定义,然后使用
$(#id_of_custom_validation_control).text("custom error message");
然后用这一点,你可以使用一个自定义的验证控制和处理多种错误情况
如
if(error1){
$(#id_of_custom_validation_control).text("custom error message1");
}else $(#id_of_custom_validation_control).text("custom error message2");
希望这可以帮助
Answer 8:
扩大@Andy响应,使用jQuery:
变化(表格显示)的短信:
$('#<%=this.[Validator].ClientID%>').text('Text to show');
改变(对于综述控制)错误消息:
$('#<%=this.[Validator].ClientID%>').attr('errormessage', 'Text to show');
替换[Validator]
为你的验证器的名字。
Answer 9:
试试这个...
使用sender.textContext中的JavaScript错误信息并设置您的CustomValidator这样:
<asp:CustomValidator ID="cvdPhoneNumber" runat="server" Display="Dynamic" ForeColor="Red" ControlToValidate="txtPhoneNumber" ClientValidationFunction="validatePhoneNumber" ErrorMessage="" />
文章来源: How can I rewrite the ErrorMessage for a CustomValidator control on the client?