Нужен лучший способ проверки флажков ASP.NET с помощью плагина проверки JQuery?

голоса
3

Проблема:

Я хочу , чтобы проверить некоторые 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 (). Форма () она будет проходить через все мои флажки и для каждого из них проверить все остальные флажки. Это на самом деле не нужно. Как можно избежать этого?

Задан 16/07/2009 в 10:44
источник пользователем
На других языках...                            


1 ответов

голоса
1

В целом, ваш код выглядит хорошо для меня. Я думаю, что вы аккуратно обработали жерех: ограничение флажка (вы не можете указать атрибут «имя» для жереха: флажок).

Лично я хотел бы использовать обычный HTML флажок.

<input type="checkbox" runat="server" ID="emailAcceptCheckBox" name="acceptCheckBox" value="emailAccepted" /><label for="emailAcceptCheckBox">Email</label><br />
<input type="checkbox" runat="server" ID="phoneAcceptCheckBox" name="acceptCheckBox" value="phoneAccepted" /><label for="phoneAcceptCheckBox">Email</label><br />

(Я добавил маркирующие так, что пользователь может щелкнуть на ярлыке (больше цели), чтобы проверить / снимите флажок.)

Выше упростит код JQuery.

На серверной стороне кода, проверьте Request.Form [ «acceptCheckBox»], чтобы увидеть, что проверяется, а что нет.

Ответил 16/07/2009 в 17:49
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more