it-swarm.asia

القيمة الفارغة "- Select -" لا تظهر للحقول المحددة مع متطلبات الدول

عندما أقوم بإنشاء مربع اختيار قياسي باستخدام Drupal 7 نموذج API ، فإن القيمة الأولى (أيضًا القيمة المحددة في "نموذج فارغ" جديد هي <option selected="selected" value="">- Select -</option>. لم يتم تحديد هذه القيمة في تعريف النموذج وأنا لا أقوم بتغيير الشكل. (هذا جيد)

ومع ذلك ، عندما أقوم بإنشاء مربع تحديد ثاني يعتمد على الأول باستخدام #states ، ليس لها أي قيمة افتراضية. بالنسبة للأشكال المعقدة ذات التبعيات المتعددة ، يعد هذا التناقض مشكلة.

تعريف نموذج مثال على النحو التالي:

function sb_quickquote_test_form($form, &$form_state, $post=array()) {

  $fields['first_select'] = array(
    '#type'             => 'select',
    '#title'            => 'First select box',
    '#options'          => Array('First', 'Second', 'Third'),
    '#required'         => TRUE,
  );

  $fields['dependent_delect'] = array(
    '#type'             => 'select',
    '#title'            => 'Dependent select box',
    '#options'          => Array('Something', 'Another thing', 'Something else', 'Final thing'),
    '#states'           => Array(
      'visible' => Array('select[name=first_select]' => array('value' => '2')),
      'required' => Array('select[name=first_select]' => array('value' => '2')),
    ),
  );

  $fields['submit'] = array(
    '#type' => 'submit',
    '#value' => t('Submit'),
  );
  return $fields;
}

في هذا المثال البسيط ، لدينا مربعا اختيار وزر إرسال. يتم عرض مربعي الاختيار على النحو التالي:

 ______________      ________________
| - Select - |v|    | Something    |v|
`--------------'    `----------------'
| - Select -   |    | Something      | <- no empty option
| First        |    | Another thing  |
| Second       |    | Something else |
| Third        |    | Final thing    |
 --------------      ----------------

(بسبب #states الإعداد ، يظهر مربع التحديد الثاني فقط عندما يكون مربع التحديد الأول به "الثالث" المحدد)

يسبب هذا التناقض مشاكل في موقف ننشئ فيه أشكالًا ديناميكية معقدة ذات مجالات مترابطة.

هل لدى أي شخص أي فكرة عن سبب إعطاء الحقول خيارات غير متناسقة وما أفضل نهج للعمل على حل المشكلة؟

8
adamnfish

لفرض "الخيار الفارغ" ، قم بتعيينه بشيء مثل:

"#empty_option"=>t('- Select -'),
20
doterobcn

أنت بحاجة إلى تغيير هذا:

 'visible' => Array('select[name=first_select]' => array('value' => '2')),
 'required' => Array('select[name=first_select]' => array('value' => '2')),

حدد: الإدخال

الرمز الصحيح هو:

 'visible' => Array(':input[name="first_select"]' => array('value' => '2')),
 'required' => Array(':input[name="first_select"]' => array('value' => '2')),
2
learningxm

لتمديد إجابة doterobcn ، يمكنك أيضًا تعيين القيمة الفارغة (المفتاح) لخيارك الفارغ.

في Drupal 8:

$form['country'] = [
  '#type' => 'select',
  '#multiple' => FALSE,
  '#title' => t('Country:'),
  '#required' => FALSE,
  '#options' => $countries,
  '#default_value' => 'FR',
  '#empty_option' => t('- None -'),
  '#empty_value' => '_none',
];

مما سيعطي:

<option value="_none">- None -</option>
1
romain ni