我有一个自动完成/基本的表单按预期工作(我想) . 我输入三个字符,获得匹配等 . 当我选择一个匹配时,要么使用键(并使用Enter确认)或鼠标单击它需要另一个Enter来提交表单 . 这感觉......不自然:-)
因此,我正在尝试获取自动填充/基本表单字段,以便在选择完成后为我提交表单 .
我的第一次(被误导的)测试尝试涉及做以下事情:
$form->getElement('fieldname')->js('select', $form->js()->univ()->alert('Select!'));
当在表单字段中选择文本时,这会触发,而不是我正在寻找的内容 .
我开始查看autocomplete_univ.js并且(unsuccesfully)添加了$(other_field).closest('form') . submit();但我完全不了解jQuery / JS,所以我希望有人可以帮助我 .
关于如何触发(提交)自动完成选择的任何想法?
this.jquery.autocomplete($.extend({
source: data,
focus: function( event, ui ) {
// Imants: fix for item selecting with mouse click
var e=event;
while(e.originalEvent!==undefined) e=e.originalEvent;
if(e.type!='focus') q.val( ui.item[title_field] );
return false;
},
select: function( event, ui ) {
q.val( ui.item[title_field] );
$(other_field).val( ui.item[id_field] );
//Added this line below
$(other_field).closest('form').submit();
return false;
},
change: function(event, ui) {
var data=$.data(this);//Get plugin data for 'this'
if(data.uiAutocomplete.selectedItem==undefined) {
if("mustMatch" in options) q.val('');
$(other_field).val(q.val());
return false;
}
}
},options))
.data( "ui-autocomplete" )._renderItem = function( ul, item ) {
return $( "<li></li>" )
.data( "ui-autocomplete-item", item )
.append( "<a>" + item[title_field] + "</a>" )
.appendTo( ul );
};
1 回答
我猜你在ATKs JS库中的chane是不正确的 .
可能应该工作的是挂钩到other_field onChange事件 . 像这样的东西: