如何通过父页面验证用户控件文本框?
用户控件是在asp.net页面上动态添加的,需要在(父)asp.net页面上的保存按钮上进行验证。
正在通过客户端脚本验证用户控件上的文本框。
动态添加控件后,验证将起作用并显示错误消息,但值将保存在“保存”按钮上。如果我输入'5'然后我收到错误信息,如果我点击保存按钮,则保存值'5'。
用户控制
<td>
<asp:TextBox ID="txtEstReportingHrs" runat="server" Width="102px" class="initval"></asp:TextBox>
<asp:CustomValidator ID="rtxtERH" runat="server" CssClass="required" ValidationGroup="btnSave" SetFocusOnError="True" ControlToValidate="txtEstReportingHrs" ClientValidationFunction="ValidateReportingHrs" Display="Dynamic" ValidateEmptyText="True"></asp:CustomValidator>
</td>
用户控制脚本
function ValidateReportingHrs(sender, args) {
var RHMatchexpression = /^(([0-3])?(\.(0|25|5|75)0*)?|4(\.(0|25|5)0*)?)$/;
var re = new RegExp(RHMatchexpression);
if (args.Value == "") {
sender.innerHTML = "* Required";
args.IsValid = false;
return;
}
if (args.Value > 4.5) {
sender.innerHTML = "* excessive reporting time";
args.IsValid = false;
return;
}
if (!re.test(args.Value)) {
sender.innerHTML = "* Invalid";
args.IsValid = false;
return;
}
args.IsValid = true;
return;
}
Asp.net Page
<asp:Button runat="server" Text="Save Details" ID="btnSave" Width="130px" ClientIDMode="Static" ValidationGroup="save"></asp:Button>
答案 0 :(得分:0)
这样做怎么样:
function ValidateReportingHrs(sender, args) {
var RHMatchexpression = /^(([0-3])?(\.(0|25|5|75)0*)?|4(\.(0|25|5)0*)?)$/;
var re = new RegExp(RHMatchexpression);
if (args.Value == "") {
sender.innerHTML = "* Required";
args.IsValid = false;
} else if (args.Value > 4.5) {
sender.innerHTML = "* excessive reporting time";
args.IsValid = false;
} else if (!re.test(args.Value)) {
sender.innerHTML = "* Invalid";
args.IsValid = false;
}
else
args.IsValid = true;
}
并且验证组对于按钮和验证器应该是相同的。