asp.net自定义验证器在回发时没有属性controltovalidate

时间:2012-04-03 05:34:38

标签: jquery asp.net validation

我在页面中使用我的jQuery插件和asp.net自定义验证器:

<asp:TextBox ID="txtModel" runat="server" />
<asp:CustomValidator ID="modelValidator" Display="Static" ControlToValidate="txtModel" ClientValidationFunction="validateDetails" EnableClientScript="true" runat="server" Text="My Message" />

<script type="text/javascript">

function validateDetails(sender, args) {
    var controltovalidate = $(sender).attr('controltovalidate');
    args.IsValid = $('#' + controltovalidate).data('MyPlugin').hasValidValue();
}

    $(function() {
        $('#<%=txtModel.ClientID %>').MyPlugin({
            validator: $('#<%=modelValidator.ClientID %>') //In order to execute validation check when values inserted
        });
    });
 </script>

正如您所看到的,除了在回发时验证器执行,我想在插件中执行验证器,因此我在插件选项中传递了验证器。
每当插件执行验证器时(使用ValidatorValidate(options.validator.get(0));,validateDetails函数都可以正常工作 问题出在后期。当我按下一个回发按钮时,var controltovalidate = $(sender).attr('controltovalidate');上的validateDetails函数失败,因为发件人突然没有controltovalidate属性。这是为什么?如何使该功能在回发后起作用?

1 个答案:

答案 0 :(得分:0)

@Naor:尝试在按钮点击事件上调用jquery函数,并验证值。