2014-10-12 4 views
0

Вот моя ситуация:Как обходить/отклонять проверку веб-формы в 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); 

Я не знаю, что делать, чтобы после //. Или есть другие идеи, которые будут работать?

ответ

0

согласно вашему требованию упомянуть

Возьмите этот пример

Вы создали WebForm, имеющий поле как

Firstname с обязательным полем LastName с требуемым полем

Затем Следующая кнопка

Когда пользователь нажимает следующую кнопку, тогда отображается ошибка, потому что у вас есть m ake поля обязательны для заполнения

Когда вы показываете кнопку «Отклонить» рядом с каждым полем.

Whenr пользователь нажимает кнопку «Отклонить», что время вы должны удалить «требуется» атрибут поля с помощью JQuery или Друпал АЯКС

После этого, когда пользователь нажимает кнопку Далее, то пользователь не получает какой-либо требуемой ошибки проверки поля ,

+0

Спасибо за ваш ответ. Как удалить «обязательный» атрибут поля с помощью jquery или drupal ajax? Я не программист, и не могли бы вы дать мне еще больше намека? Спасибо! – user4118046