【问题标题】:How to bypass/dismiss webform validation in drupal 7?如何绕过/关闭 drupal 7 中的 webform 验证?
【发布时间】:2014-10-12 02:55:49
【问题描述】:

这是我的情况:

我有一个很长的多页调查,由 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);

我不知道在 //.还是有其他可行的想法?

【问题讨论】:

    标签: validation drupal drupal-7 drupal-webform


    【解决方案1】:

    根据您的要求提及

    举个例子

    您已经创建了具有类似

    字段的网络表单

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

    然后是下一步按钮

    当用户单击下一步按钮时,由于您已将字段设为必填,因此会显示错误

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

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

    之后,当用户单击下一步按钮时,用户不会收到任何类型的必填字段验证错误。

    【讨论】:

    • 感谢您的回复。如何使用 jquery 或 drupal ajax 删除字段的“必需”属性?我不是程序员,你能给我更多提示吗?谢谢!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-03
    • 2018-11-28
    • 2020-05-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多