Проблема:
Я хочу , чтобы проверить некоторые ASP.NET-флажки с помощью плагина проверки JQuery (найти по адресу: http://bassistance.de/jquery-plugins/jquery-plugin-validation/ )
Что это все о:
Это невозможно установить имя атрибута флажков ASP.NET из (или это?). Он будет автоматически установлен, когда управление визуализируется и может быть получена с помощью
<%= emailCheckBox.UniqueID %>
Так две галочки, как следующее:
<asp:CheckBox runat=server ID=emailAcceptCheckBox />Email<br />
<asp:CheckBox runat=server ID=phoneAcceptCheckBox />Phone<br />
воздаст:
<INPUT id=ctl00_MainContentPlaceHolder_emailAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$emailAcceptCheckBox>
<INPUT id=ctl00_MainContentPlaceHolder_phoneAcceptCheckBox type=checkbox name=ctl00$MainContentPlaceHolder$phoneAcceptCheckBox>
Может быть, это беспорядок смешивать ASP.NET с помощью плагина проверки JQuery, но я предпочитаю плагин проверки JQuery и она отлично работает с входами и другими областями.
Проблема заключается в том, что плагин проверки JQuery хочет группы флажков, используя имя-атрибут флажков. Это имя атрибут должен быть равным для всех флажков и группы.
Что я наделал:
Я добавил правило ко всем флажков с помощью JQuery:
$(#[id*='AcceptCheckBox']).each(function() { $(this).rules(add, { minchecked: 1 }); });
И добавил свое собственное правило проверки для флажков:
jQuery.validator.addMethod(minchecked,
function(value, element, param) {
var noOfChecked = $(#[id*='AcceptCheckBox']:checked).length;
return noOfChecked >= param;
},
Error);
(Это правило будет применяться для флажков, чьи идентификаторы включают AcceptCheckBox, но это нормально в этом примере).
Когда я звоню:
var result = $(#aspnetForm).validate().form();
Она возвращает прекрасно, если моя проверка успешно или не удалось!
НО:
1) Я не чувствую, что это очень чистое и хорошее решение. Любой лучший совет?
2) Когда я запускаю Validate (). Форма () она будет проходить через все мои флажки и для каждого из них проверить все остальные флажки. Это на самом деле не нужно. Как можно избежать этого?













