Я использую свой плагин 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 работает отлично.
Проблема в пост-возврате. Когда я нажимаю на кнопку, которая делает постбэкфункция validateDetails не работает на var controltovalidate = $(sender).attr('controltovalidate');
, поскольку отправитель внезапно не имеет атрибута controltovalidate
. Почему это так?