Я использую мой 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
атрибут Почему это Как я могу сделать функцию работы на посту назад
@mshsayem: Нет. Я использую эта функция validateDetails только для валидатора modelValidator. – Naor
Если это только для одного валидатора, почему вы получаете как это? Просто '$ (" # txtModel ")' должен работать, правильно? как 'args.IsValid = $ ('# txtModel'). data ('MyPlugin'). hasValidValue();'? – mshsayem
@mshsayem: Вы правы, но я предпочитаю, чтобы функция validateDetails не зависела от идентификаторов элементов. Более того, функция validateDetails остается в другом js-файле и поэтому у меня нет идентификатора клиента для отображаемого элемента txtModel. – Naor