我在页面中使用我的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
属性。这是为什么?如何使该功能在回发后起作用?
答案 0 :(得分:0)
@Naor:尝试在按钮点击事件上调用jquery函数,并验证值。