Проверка Symfony sfWidgetFormSelectDoubleList - PullRequest
1 голос
/ 22 июня 2011

Есть ли проверка для sfWidgetFormSelectDoubleList, и у меня возникла проблема, когда форма недействительна [! IsValid ()] и перезагрузите страницу с предыдущими данными.Варианты не отображают ранее выбранное значение, и я не получаю никакого значения, даже если в следующий раз выберу какое-то значение из выбора.

Моя форма выглядит так

$this->setWidgets(array(
            'event_title' => new sfWidgetFormInputText(),
            'client_list' => new sfWidgetFormSelectDoubleList(array(
                'choices' => $client,
                'associated_first' => false,
                'label_associated' => '',
                'label_unassociated' => ''
            )),
));

$this->setValidators(array(
            'event_title' => new sfValidatorString(array('required' => true)),  
           ));

// и в моем контроллере

if($form1->isValid()){

               $resource->title = $frmField['event_title'];
               $resource->save();
               //var_dump($frmField);
               return $this->renderPartial('newEvent', array('form1' => $form1));
            } else {
                var_dump($frmField);
                return $this->renderPartial('createEvent', array('form1' => $form1));
            }

не удалось установить валидатор, поскольку я его не знаю.И не имею ни малейшего представления, почему он не получает никакого значения при отправке его во второй раз и далее

1 Ответ

0 голосов
/ 30 мая 2012

Я думаю, что это не проблема проверки.Выбранные значения никогда не отправляются.Я предполагаю, что даже если форма действительна, значения не сохраняются (вы можете проверить это в базе данных).Проблема состоит в том (я думаю), что выбранные «выбранные значения» заполнены значениями, но эти значения никогда не выбираются.Каждая опция в этом выборе должна не только существовать, даже быть «выбранной».В плагине отсутствует эта часть.Я решил ужасающе выбрать каждый вариант при отправке формы (с помощью jquery).Что-то вроде:

<script type="text/javascript">
$(document).ready(function() {
    $('#form_html_id').submit(function(e) {
         // You should find this html id for the "selected values" select
         $('#your_entity_client_list option').attr('selected','selected');
         return true;
    });
});
</script>

Я надеюсь, что этот обходной путь может помочь вам.Извините за мой плохой английский.

...