سؤال

أنا أفعل بعض نموذج ويب التحقق من صحة باستخدام webform_form_alter.أنا باستخدام webform_form_alter لأنني تبديل محتوى معين على "حدد" الميدانية.

في بلدي webform-form-317.tpl.php تعريف جديد مجموعة الحقول يمكنني تعيين الحقول إلى حقول و ضبطه الأصلي من نموذج ويب.

$form['submitted']['ContactInfo'] = array(
'#type' => 'fieldset',
'#prefix' => '<div id="ContactInfo">',
'#suffix' => '</div>',
'#weight' => -10,
'#title' => 'Contact Information'
);

$form['submitted']['ContactInfo']['phone_home'] = $form['submitted']['phone_home'];
unset($form['submitted']['phone_home']);

في webform_form_alter لدي البرمجية التالية:

switch ($form_id)
{
case 'webform_client_form_317':
{
$form['#validate'][] = 'validate_form';
}
}

بلدي Validate_form وظيفة تبدو مثل:

function validate_form($form_id, $form_values)
{
      if ($form_values['submitted_tree']['ContactInfo']['phone_home'] == "")
      {
             form_set_error('phone_error', t('Please enter a home phone number.'));
      }
}

القضية هي أن $form_values['submitted_tree']['ContactInfo']['phone_home'] يعود كلا شيء حتى هو المستخدم إدخال شيء في الحقل النصي.

أي اقتراحات بشأن ما أفعله خطأ ؟

كما السؤال الثاني في حالة شخص أيضا إجابات, كيف يمكنني تعديل هذه textfields لتعيين فئة "شكل النص المطلوب الخطأ" بحيث تظهر باللون الأحمر مع بقية الحقول الإلزامية.

شكرا

هل كانت مفيدة؟

المحلول

أتمنى أن لا أكتب هذا الكود في يبفورم ، ولكن جعلت الخاص بك وحدة مخصصة لذلك.

في الحالة الأولى, وظيفة الخاص بك ينبغي أن يكون

function validate_form($form, &$form_state) {
    if ($form_state['values']['submitted_tree']['ContactInfo']['phone_home'] == "") {
         form_set_error('phone_home', t('Please enter a home phone number.'));
    }
}

إذا كنت تتحدث عن الخطأ الدرجة, دروبال إضافة إلى جميع الحقول التي لديه خطأ تعيين مثل على رمز أعلاه.تحتاج إلى تمرير في اسم حقل النموذج الأول المعلمة إلى form_set_error وظيفة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top