如何在drupal 7中绕过/关闭webform验证?

时间:2014-10-12 02:55:49

标签: validation drupal drupal-7 drupal-webform

以下是我的情况:

我有一个很长的多页调查由webforms在drupal中构建。 这些问题不是必需的,但我们不希望用户只需点击“下一页”按钮就可以轻松跳过所有问题。

所以这就是我们所需要的:

当用户尝试点击"下一页"如果页面上显示任何空白字段,则会显示错误或警告消息,"您确定要跳过此问题吗?",以及旁边的跳过按钮。当用户点击跳过按钮时,消息消失,他们点击下一页按钮继续调查。

以下是我对此的看法:

我使用了webform验证模块来创建Not Empty验证并将其应用于字段。

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
    }
}

另一个想法:

我使用Dismiss模块在错误消息旁边显示一个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);

我不知道在//之后该怎么做。或者还有其他想法可行吗?

1 个答案:

答案 0 :(得分:0)

根据您的要求提及

以此为例

您已创建包含

字段的网络表单

带有必填字段的名字 带有必填字段的姓氏

然后是下一步按钮

当用户单击下一个按钮然后显示错误,因为您已将字段设为必需

当您在每个字段旁边显示“关闭按钮”时。

当用户点击“关闭按钮”时,您必须使用jquery或drupal ajax删除字段的“required”属性

之后,当用户单击下一步按钮时,用户无法获得任何类型的必填字段验证错误。