#javascript #jquery #jquery-ui #symfony1 #jquery-autocomplete
#javascript #jquery #jquery-пользовательский интерфейс #symfony1 #jquery-автозаполнение
Вопрос:
Я использую sfWidgetFormDoctrineJQueryAutocompleter из sfFormExtraPlugin, чтобы попытаться привязать какое-либо событие к виджету.
Согласно http://jqueryui.com/demos/autocomplete/#event-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:
Попробуйте поместить это в конце вашего 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(); ?>