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

时间:2014-01-16 18:18:18

标签: jquery autocomplete atk4

我有一张自动填充/基本的表格按预期工作(我想)。我输入三个字符,获得匹配等。 当我选择一个匹配项时,或者使用键(并按Enter确认)或鼠标单击它需要另一个Enter来提交表单。这感觉......不自然: - )

所以我在尝试选择后,尝试让自动填充/基本表单字段为我提交表单。

我的第一次(被误导的)测试尝试涉及做一些事情:

$form->getElement('fieldname')->js('select', $form->js()->univ()->alert('Select!'));

当在表单字段中选择文本时,会触发此操作,而不是我正在寻找的内容。

我开始查看autocomplete_univ.js并且(不成功地)添加了$(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 :(得分:0)

我猜你在ATKs JS库中的变化是不正确的。

可能应该挂钩到其他字段onChange事件。 像这样:

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