【问题标题】:How can i set error message in right place drupal 7?如何在正确的位置设置错误消息 drupal 7?
【发布时间】:2020-06-27 12:44:31
【问题描述】:

需要有关 drupal 7 的帮助。我是 drupal 的新手。

我有下面的验证和验证错误的代码,它工作正常。但是错误总是出现在错误的地方。

我认为是 $element 的问题,但我确定。

一些示例html

    <form id="webform_client_form_226">
<div class="catalogue__form-input-inner">
    <div class="catalogue__form-input">
        <div class="form-item">
            
            // i need it here
            
            <label for="edit-submitted-vashe-imya--3">Your name</label>
            <input name="submitted[vashe_imya]" value="" size="60" maxlength="128" class="form-text error">
        </div>
    </div>
    
    <div class="catalogue__form-input">
        <div class="form-item webform-component webform-component-textfield webform-component--nomer-telefona webform-container-inline">

            // and here

            <label>Phone number</label>
            <input name="submitted[nomer_telefona]">
        </div>
    </div>
    
    <div class="catalogue__form-button">

    // always appears here right now

        <div class="form-actions">
            <input name="op" value="send"></div>        
        </div>
    </div>
</div>

和模板.php

function pkpro_uikit_form_alter(&$form, &$form_state, $form_id) {
    // Check the form id
    if($form_id == 'webform_client_form_226') {
    $form['#validate'][] = 'form_validate';
    }
    }
        
    function form_validate(&$form, &$form_state) {
    $message = "Field required";
    
    if(isset($form_state['values']['submitted']['vashe_imya'])) {
    $name = $form_state['values']['submitted']['vashe_imya'];
    if( condition ) {
    form_error($form['submitted']['vashe_imya'], $message);
    }
    }
    if(isset($form_state['values']['submitted']['nomer_telefona'])) {
    $name = $form_state['values']['submitted']['nomer_telefona'];
    if( condition ) {
    form_error($form['submitted']["nomer_telefona"], $message);
    }
    }
      // get all validation errors. 
      $form_errors = form_get_errors();
      
      if (!empty($form_errors)) {
        foreach ($form_errors as $element => $error) {
          $form[$element]['#suffix'] = '<div>'.$error.'</div>';
        }
      }
      // clear default error messages.
      drupal_get_messages('error');    
    }

帮助,请)

【问题讨论】:

    标签: drupal drupal-7 form-api


    【解决方案1】:

    您需要修改您的模板。寻找page.tpl.php。它应该有一个$message 变量。将其移动到正确的位置。如果您只希望它用于一种内容类型或页面,请复制 page.tpl.php,以便它只针对您想要的内容。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-06-18
      • 1970-01-01
      • 2017-07-01
      • 1970-01-01
      • 1970-01-01
      • 2011-04-22
      相关资源
      最近更新 更多