首页 文章

选择或输入ATK4自动填写提交表单

提问于
浏览
0

我有一个自动完成/基本的表单按预期工作(我想) . 我输入三个字符,获得匹配等 . 当我选择一个匹配时,要么使用键(并使用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 回答

  • 0

    我猜你在ATKs JS库中的chane是不正确的 .

    可能应该工作的是挂钩到other_field onChange事件 . 像这样的东西:

    $(other_field).change(
        function(){$(other_field).closest('form').submit();}
    );
    

相关问题