Вот моя ситуация:Как обходить/отклонять проверку веб-формы в drupal 7?
У меня очень длинный многостраничный опрос, построенный webforms в drupal. Вопросы не требуются, но мы не хотим, чтобы пользователи слишком быстро пропустили все вопросы, просто нажав кнопку «Следующая страница».
Так это то, что нам нужно:
Когда пользователь попробуйте нажать на кнопку «Следующая страница» с любыми пустыми полями на странице, ошибки или предупреждения будут отображаться, «Вы уверены, что хотите пропустите этот вопрос? », а также кнопку пропустить рядом с ним. Когда пользователь нажимает кнопку пропустить, сообщение исчезает, и они нажимают кнопку следующей страницы, чтобы продолжить опрос.
Вот мои мысли об этом:
Я использовал модуль проверки веб-форму, чтобы создать не пустые проверки и применить его к полям.
в webform_validation_validators.inc
:
case 'skip_if_empty':
foreach ($items as $key => $val) {
if (count($val) == 0) {
drupal_set_message(t('This field is empty.'), 'warning');
// do something, not sure about it here
}
}
Еще одна мысль:
Я использовал Отклонить модуль для отображения кнопки X рядом с сообщением об ошибке. Могу ли я добавить некоторые функции к кнопке X, чтобы обойти проверку, когда она нажата?
А вот скрипт для Dismiss модуля:
(function ($) {
Drupal.behaviors.dismiss = {
attach: function (context) {
$('.messages').each(function() {
var flag = $(this).children().hasClass('dismiss');
if (!flag) {
$(this).prepend('' + Drupal.t('Close this message.') + '');
}
});
$('.dismiss').click(function() {
$(this).parent().hide('fast');
// some functions to bypass validation to the field?
});
}
}
})(jQuery);
Я не знаю, что делать, чтобы после //. Или есть другие идеи, которые будут работать?
Спасибо за ваш ответ. Как удалить «обязательный» атрибут поля с помощью jquery или drupal ajax? Я не программист, и не могли бы вы дать мне еще больше намека? Спасибо! – user4118046