2014-10-12 54 views
0

這是我的情況:如何繞過/關閉在drupal 7中的webform驗證?

我有一個很長的多頁面調查由webforms在drupal中構建。 這些問題不是必需的,但我們不希望用戶只需單擊下一頁按鈕即可跳過所有問題。

所以這是我們需要的:

當用戶嘗試點擊與頁面上,錯誤的任何空字段或警告消息「下一頁」按鈕,將顯示「您確定要跳過這個問題?「,以及旁邊的跳過按鈕。當用戶點擊跳過按鈕時,消息消失,他們點擊下一頁按鈕繼續調查。

下面是關於這個我的想法:

我使用Web窗體驗證模塊創建一個非空的驗證,並將其應用到田間地頭。

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按鈕添加一些功能,以在單擊時繞過驗證嗎?

這裏是對辭退模塊的腳本:

(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

按了你的要求提

拿這個例子

您已經創建了有場Web窗體像

名字與必填字段 姓與必填字段

然後單擊Next按鈕按鈕

當用戶點擊下一個按鈕,然後錯誤顯示,因爲你有m ake這些字段是必需的

當您在每個字段旁邊顯示「關閉按鈕」時。

Whenr用戶點擊「辭退按鈕」到時候你必須刪除「要求」字段屬性使用jQuery或Drupal的AJAX

之後,當用戶點擊一個按鈕,然後用戶無法獲得任何形式的必填字段驗證錯誤。

+0

感謝您的回覆。如何使用jquery或drupal ajax去除字段的「必需」屬性?我不是程序員,你能給我一些更多的提示嗎?謝謝! – user4118046 2014-10-14 04:11:08