2012-04-03 1 views
0

Я использую мой JQuery плагин с asp.net валидатором на странице:asp.net валидатор не имеет атрибута ControlToValidate на постбэк

<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 атрибут Почему это Как я могу сделать функцию работы на посту назад

+0

@mshsayem: Нет. Я использую эта функция validateDetails только для валидатора modelValidator. – Naor

+0

Если это только для одного валидатора, почему вы получаете как это? Просто '$ (" # txtModel ")' должен работать, правильно? как 'args.IsValid = $ ('# txtModel'). data ('MyPlugin'). hasValidValue();'? – mshsayem

+0

@mshsayem: Вы правы, но я предпочитаю, чтобы функция validateDetails не зависела от идентификаторов элементов. Более того, функция validateDetails остается в другом js-файле и поэтому у меня нет идентификатора клиента для отображаемого элемента txtModel. – Naor

ответ

0

@Naor:? Попробуйте вызвать вашу функцию JQuery на события нажатия кнопки, и проверки значений

+0

Полагаю, вы не поняли вопроса. – Naor

Смежные вопросы