रिक्त मान "- चुनें -" राज्यों की आवश्यकता वाले चुनिंदा क्षेत्रों के लिए प्रकट नहीं होता है


8

जब मैं 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;
}

इस सरल उदाहरण में, हमारे पास 2 चुनिंदा बॉक्स और एक सबमिट बटन है। दो चुनिंदा बक्से इस प्रकार प्रदर्शित होते हैं:

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

( #statesसेटिंग के कारण, दूसरा चयन बॉक्स केवल तभी प्रकट होता है जब पहले चयनित बॉक्स में "तीसरा" चयनित होता है)

यह असंगति एक ऐसी स्थिति में समस्या पैदा कर रही है जहां हम अंतर-निर्भर क्षेत्रों के साथ जटिल गतिशील रूप उत्पन्न कर रहे हैं।

क्या किसी को भी पता नहीं है कि खेतों को असंगत विकल्प क्यों दिए जा रहे हैं और समस्या के आसपास काम करने के लिए सबसे अच्छा तरीका क्या है?

जवाबों:


20

"खाली विकल्प" को लागू करने के लिए, इसे कुछ इस तरह से असाइन करें:

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

जवाब के लिए धन्यवाद। मुझे यह जाँचने के लिए कहीं भी ड्रुपल सेट नहीं है, इसलिए मुझे इसके लिए आपका शब्द लेना होगा और दूसरों से वोटों पर नज़र रखनी होगी!
एडमनफिश

यह फिक्स Drupal 8 के लिए भी काम करता है
स्कॉट जौड्री

2

आपको इसे बदलने की आवश्यकता है:

 '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')),

1

Doterobcn उत्तर का विस्तार करने के लिए आप अपने खाली विकल्प का रिक्त मान (कुंजी) भी सेट कर सकते हैं।

ड्रुपल 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>
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.