sfWidgetFormDoctrineJQueryAutocompleter - события не работают - PullRequest
1 голос
/ 21 апреля 2011

Я использую sfWidgetFormDoctrineJQueryAutocompleter из sfFormExtraPlugin, попытку связать какое-то событие с виджетом.

Согласно http://jqueryui.com/demos/autocomplete/#event-search есть способ привязать событие к запускуsearch.

Однако, похоже, он не работает с виджетом.Мой код:

$this->widgetSchema['author_id'] = new sfWidgetFormDoctrineJQueryAutocompleter(array(
  'model'  =>  'Employee',
  'method' => 'getFullName',
  'method_for_query' => 'findOneByEmployeeNumber',
  'url'    =>  '/backend_dev.php/employee/search',
  'config' =>  '{
    minChars: 3,
    search: function(event, ui) { alert("Search!"); } //Should popup an alert() when the search is launched.
    }'
));

Однако, когда я заполняю форму, поиск запускается, отображаются результаты, но оповещение не отображается.

Есть идеи?

Спасибо.

Редактировать

Сгенерирован Javascript:

<label for="document_author_id">Author</label>
<input type="hidden" id="document_author_id" value="00000006" name="document[author_id]">
<input type="text" id="autocomplete_document_author_id" value="Michaël Jones" name="autocomplete_document[author_id]" autocomplete="off" class="ac_input">
<script type="text/javascript">
  jQuery(document).ready(function() {
    jQuery("#autocomplete_document_author_id")
    .autocomplete('/backend_dev.php/employee/search', jQuery.extend({}, {
      dataType: 'json',
      parse:    function(data) {
        var parsed = [];
        for (key in data) {
          parsed[parsed.length] = { data: [ data[key], key ], value: data[key], result: data[key] };
        }
        return parsed;
      }
    }, {
        minChars: 3,
        search: function(event, ui) { alert("Search!"); }
        }))
    .result(function(event, data) { jQuery("#document_author_id").val(data[1]); });
  });
</script>

1 Ответ

0 голосов
/ 31 августа 2011

Попробуйте поместить это в конец вашего шаблона form.php (?)

<?php javascript_tag(); ?>
    jQuery().ready(function(){
        // or use ID #autocomplete_document_author_id
        jQuery(".ac_input").search(function(event, ui){
            alert("Search!");
        });
    });
<?php end_javascript_tag(); ?>
...