В Drupal 8 требуется поле выбора - PullRequest
0 голосов
/ 20 января 2019

Я создал поле "Автомобили" типа List (текст) в Drupal 8, которое имеет эти значения

                        0|Lambo
                        1|MER
                        2|BMW
                        3|Aston
                        4|Range Rover
                        5|Limo 

Я выбрал "- Нет -" в качестве значения по умолчанию, и я не сделал это поле обязательным, установив флажок в настройках редактирования drupal, я хочу сделать это поле обязательным через JQuery.

Я пробовал код Jquery: -

        jQuery('#edit-field-secondary-waste-type').prop('required', true);

Ожидаемый результат: поле становится обязательным, но на самом деле оно не работает, а форма сохраняется со значением "Нет" , так как оно было установлено в качестве значения по умолчанию.

1 Ответ

0 голосов
/ 08 февраля 2019

Вот ответ: -

Важное примечание- Мы не используем Drupal8 в поле встроенного необходимого флажка в настройках поля, потому что здесь мы обсуждаем вторичную форму, которая скрытапо умолчанию и отображается при некоторых условиях.

Итак,

В Drupal8, текстовые поля могут быть сделаны обязательными с использованием подхода JQuery, но поля "select" и "upload file" не ладятс jQuery.

Вот одно из решений: -

Вы можете заставить их проверять проверку в вашей функции "Проверка"

Вотмой код: -

в именах полей кода для размещения с именами полей. Я использовал случайные значения, например

public static function node_content_type_xyz_form_validate(array $form, FormStateInterface $form_state){



   $primary =  $form_state->getValue('field_name')[0]['value'];

   $reset_text_fields=[];

//in my case this was the condition**

   if($primary < 4){
      $form_state->setValue('field_secondary_waste_type',$reset_text_fields);
            }



    // here is the validation**



      else{

        $empty=[];
        $value_of_secondary_waste_type = $form_state->getValue('field_secondary_waste_type')[0]['value'];

        if($value_of_secondary_waste_type == null){

          $form_state->setErrorByName('field_secondary_waste_type', t('Secondary Waste Type is required.'));

        }


        if(($value_of_secondary_waste_type == 1) || ($value_of_secondary_waste_type == 2) || ($value_of_secondary_waste_type == 3 ) || ($value_of_secondary_waste_type == 5)){

          $value_of_pcpg = $form_state->getValue('field_secondary_pcpg_facility_ty')[0]['value'];

            if($value_of_pcpg == null) {
               $form_state->setErrorByName('field_secondary_pcpg_facility_ty', t('Secondary Facility Type is required.'));
            }



        }

        if($value_of_secondary_waste_type == 0){

            $value_of_residual = $form_state->getValue('field_secondary_residual_facilit')[0]['value'];

            if($value_of_residual == null ){
               $form_state->setErrorByName('field_secondary_residual_facilit', t('Secondary Facility Type is required.'));
            }

        }

        if($value_of_secondary_waste_type == 4){
          $metal = $form_state->getValue('field_secondary_metal_facility_t')[0]['value'];

          if($metal == null){
            $form_state->setErrorByName('field_secondary_metal_facility_t', t('Secondary Facility Type is required.'));
          }


        }


        $variable= $form_state->getValue('field_secondary_permit_pdf')[0]['fids'];
        if($value_of_secondary_upload_permit == $empty){
          $form_state->setErrorByName('field_xyz', t('Secondary Permit PDF is required.'));
        }

   }



  } 

Спасибо Kushal Agrawal kushalagrawal.1996 @gmail.com

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...