验证父页面上的用户控件

时间:2015-03-11 12:49:42

标签: c# jquery asp.net validation

如何通过父页面验证用户控件文本框?

用户控件是在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>

1 个答案:

答案 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;

}

并且验证组对于按钮和验证器应该是相同的。