Во-первых, ведение домашнего хозяйства: быстрый обзор заставляет меня думать, что это не дубликат, но был бы рад исправить.
У меня есть приложение ASP.NET MVC, в котором есть страница с несколькими формами, каждая форма имеет несколько текстовых полей, флажок соглашения и кнопку отправки. Я хотел бы отключить кнопку отправки, если флажок соглашения не установлен отдельно для каждой формы. У меня все работает, но у меня такое ощущение, что мне не хватает чего-то элегантного, и я знаю, что в JQuery есть люди, которые гораздо лучше, чем я.
Вот код, который у меня работает:
$(function() {
$("form").each(function() {
$("#Agreement", this).click(function() {
if (this.checked) {
$($($(this).parent().get(0)).find("input:submit").get(0)).attr("disabled", "");
} else {
$($($(this).parent().get(0)).find("input:submit").get(0)).attr("disabled", "disabled");
}
});
});
});
Вы видите, что код запускается при готовности страницы, выбирает все формы на странице и прикрепляет обработчик кликов к каждому из флажков соглашения в каждой форме. То, с чем я боролся, и что выглядит особенно не элегантно, - это метод получения от объекта флажка, который вызвал событие click, к родительскому объекту формы, а затем к кнопке отправки одного из элементов (флажка), чтобы отключить его. Если кто-то может найти лучшее решение, тогда я готов к образованию!