Symfony 1.4 sfWidgetFormJQueryAutocompleter вставить новое значение - PullRequest
1 голос
/ 03 января 2012

Я успешно реализовал поле автозаполнения из базы данных, используя sfWidgetFormJQueryAutocompleter, но не могу найти способ вставить новое значение, если перечисленные значения не требуются.

Каждый раз, когда я отправляю форму с новым значением, она показывает мне «необходимую» ошибку. Это связано с тем, что поле автозаполнения имеет другое имя, чем виджет формы.

моя конфигурация виджета

'city'                      => new sfWidgetFormJQueryAutocompleter(array(

                                    'url'   => url_for('trainingdetail/ajaxcity'),

                                    'config' => '{ width: 220,max: 5,highlight:false ,multiple: false,multipleSeparator: ",",scroll: true,scrollHeight: 300}'
))

1 Ответ

1 голос
/ 04 января 2012

Я думал, что может быть более элегантный способ сделать это, но я решил это следующим образом.

При использовании sfWidgetFormJqueryAutocompleter, фактическое поле формы заменяется другим полем из виджета и исходным полем формыпреобразуется в скрытое поле.

Я просто проверил, имеет ли видимое поле значение, и если да, присваивает значение скрытому полю, которое является исходными полями формы, определенными в классе формы.

мой пример кода, запускается при отправке формы.

<script type="text/javascript">
$(document).submit(function cty(){
   if($('#autocomplete_trn_training_city').val().length>0)
    {
        $('#trn_training_city').val($('#autocomplete_trn_training_city').val());
    }
});
</script>

здесь: #autocomplete_trn_training_city - это идентификатор поля, сгенерированного виджетом jquery, а #trn_training_city - это идентификатор исходного поля формы, которое отправляется в базу данных.,

...