Closed dollar1981 closed 5 years ago
Можно сделать так, если чекбокс не отмечен то на кнопку "отправить" ставим атрибут disable, если чекбокс отмечен то включаем кнопку.
Создаем чекбокс: `
`Добавляем атрибут и id кнопки:
<button class="uf-btn ladda-button" id="btn" type="submit" data-style="zoom-out" disabled="disabled">ОТПРАВИТЬ</button>
Пишем скрипт:
function changeButtonState(checkbox) { var btn = document.getElementById('btn'); if (checkbox.checked) { btn.disabled = false; } else { btn.disabled = true; } }
А далее можно развивать, если человек нажал на кнопку с атрибутом disable то выводим сообщение о том, что чекбокс не отмечен и тд.
Можно сделать так, если чекбокс не отмечен то на кнопку "отправить" ставим атрибут disable, если чекбокс отмечен то включаем кнопку.
- Создаем чекбокс:
<input type="checkbox" id="check" onchange="changeButtonState(this)"/> <label for="check"><span class="tooltip-item"> Политика Конфиденциальности</span> </label>
- Добавляем атрибут и id кнопки:
<button class="uf-btn ladda-button" id="btn" type="submit" data-style="zoom-out" disabled="disabled"><span class="ladda-label"><b>ОТПРАВИТЬ</b></span></button>
- Пишем скрипт:
function changeButtonState(checkbox) { var btn = document.getElementById('btn'); if (checkbox.checked) { btn.disabled = false; } else { btn.disabled = true; } }
С первыми двумя пунктами понятно. А вот с "пишем скрипт" не очень. Куда мне необходимо вставить данный скрипт? В JS файл модуля? И еще: Ведь тут рассчет на "дурака", в том смысле, что остальные поля при не заполнении в данном модуле выводят ошибку-предупреждение, что надо сделать чтобы форму отправить. Хотелось бы воспроизвести тот же принцип и с чексбоксом. Это возможно?
Можно сделать так, если чекбокс не отмечен то на кнопку "отправить" ставим атрибут disable, если чекбокс отмечен то включаем кнопку.
- Создаем чекбокс:
<input type="checkbox" id="check" onchange="changeButtonState(this)"/> <label for="check"><span class="tooltip-item"> Политика Конфиденциальности</span> </label>
- Добавляем атрибут и id кнопки:
<button class="uf-btn ladda-button" id="btn" type="submit" data-style="zoom-out" disabled="disabled"><span class="ladda-label"><b>ОТПРАВИТЬ</b></span></button>
- Пишем скрипт:
function changeButtonState(checkbox) { var btn = document.getElementById('btn'); if (checkbox.checked) { btn.disabled = false; } else { btn.disabled = true; } }
С первыми двумя пунктами понятно. А вот с "пишем скрипт" не очень. Куда мне необходимо вставить данный скрипт? В JS файл модуля? И еще: Ведь тут рассчет на "дурака", в том смысле, что остальные поля при не заполнении в данном модуле выводят ошибку-предупреждение, что надо сделать чтобы форму отправить. Хотелось бы воспроизвести тот же принцип и с чексбоксом. Это возможно?
Вставляйте прям в form.tpl в самый низ в тегах
Насчет второго вопроса, это еще проще получается, делается все средствами самого модуля, добавляйте чекбокс: `
</div>`
Далее в конфиге указывайте:
checkboxFields = checkbox1
+ добавьте его в поле required
А после уже описывайте ошибку в form.tpl
Можно сделать так, если чекбокс не отмечен то на кнопку "отправить" ставим атрибут disable, если чекбокс отмечен то включаем кнопку.
- Создаем чекбокс:
<input type="checkbox" id="check" onchange="changeButtonState(this)"/> <label for="check"><span class="tooltip-item"> Политика Конфиденциальности</span> </label>
- Добавляем атрибут и id кнопки:
<button class="uf-btn ladda-button" id="btn" type="submit" data-style="zoom-out" disabled="disabled"><span class="ladda-label"><b>ОТПРАВИТЬ</b></span></button>
- Пишем скрипт:
function changeButtonState(checkbox) { var btn = document.getElementById('btn'); if (checkbox.checked) { btn.disabled = false; } else { btn.disabled = true; } }
С первыми двумя пунктами понятно. А вот с "пишем скрипт" не очень. Куда мне необходимо вставить данный скрипт? В JS файл модуля? И еще: Ведь тут рассчет на "дурака", в том смысле, что остальные поля при не заполнении в данном модуле выводят ошибку-предупреждение, что надо сделать чтобы форму отправить. Хотелось бы воспроизвести тот же принцип и с чексбоксом. Это возможно?
Вставляйте прям в form.tpl в самый низ в тегах
Насчет второго вопроса, это еще проще получается, делается все средствами самого модуля, добавляйте чекбокс:
<div class="uf-field-input"> {* Условия вывода в шаблон информации в зависисмости от значения чекбокса *} [uf_checkbox_checkbox1="oneCheck"]Чекбокс отмечен <br>[/uf_checkbox_checkbox1] <label><input type="checkbox" name="checkbox1" value="oneCheck" [uf_checkbox_checkbox1_oneCheck]checked[/uf_checkbox_checkbox1_oneCheck]> Простой чекбокс</label> </div>
Далее в конфиге указывайте:
checkboxFields = checkbox1
+ добавьте его в поле requiredА после уже описывайте ошибку в form.tpl
Спасибо. Теперь ясна большая часть скрипта. Но вот при описании ошибки в шаблоне происходит косяк. В поле вывода инфы об ошибки так же попадают теги [uf_error_checkbox1] Вы не приняли Пользовательское Соглашение [/uf_error_checkbox1]
Вот тут я не подскажу, я не использую этот вариант, это чисто моя логика.
По мне удобнее вариант 1.
Вот тут я не подскажу, я не использую этот вариант, это чисто моя логика.
По мне удобнее вариант 1.
Спасибо вам большое. Я тоже чисто логически, оглядываясь на стандартную форму, прописал сообщение ошибки. Но теги выводятся в форме вместе с ней. Как победить так и не смог понять. Пока просто прописал прям в поле required.
Не за что, да required как вариант)
Доброго времени суток. Не смог понять как сделать чексбокс обязательным. Делаю для Пользовательского Соглашения. То есть если чексбокс отмечен все ок и отправляем форму, если нет то выводим предупреждение. Подскажите если вас не затруднит. @pafnuty не забудь посмотреть этот тиккет :ticket: