jQuery MiniUI

标题: autocomplete 控件监听回车事件 [打印本页]

作者: overwrite    时间: 2016-4-19 16:06:00     标题: autocomplete 控件监听回车事件

<div id="applCode"
     name="applCode"
     textName="applName"
     required="true" requiredErrorText="不能为空"
     class="mini-autocomplete class4tooltip" valueFromSelect="true"
     data-placement="topleft" style="width:90%"
     valueField="customNo"
     textField="orgNameScn"
     url="">
    <div property="columns">
        <div header="" field="customNo" width="40"></div>
        <div header="" field="orgNameScn"></div>
    </div>
</div>正常使用autocomplete控件使用以下方法监听页面所有enter事件,在其它输入框都没有问题,autocomplete输入框无法自动将焦点切到下一个文本框$(document).ready(function () {
    $(':input:text:first').focus();
    $(':input:enabled').addClass('enterIndex');
    textboxes = $('.enterIndex');
    if ($.browser.mozilla) {
        $(textboxes).bind('keypress', CheckForEnter);
    } else {
        $(textboxes).bind('keydown', CheckForEnter);
    }
});
function CheckForEnter(event) {
    if (event.keyCode == 13 && $(this).attr('type') != 'button' && $(this).attr('type') != 'submit' && $(this).attr('type') != 'textarea' && $(this).attr('type') != 'reset') {
        var i = $('.enterIndex').index($(this));
        var n = $('.enterIndex').length;
        if (i < n - 1) {
            if ($(this).attr('type') != 'radio') {
                NextDOM($('.enterIndex'), i);
            }
            else {
                var last_radio = $('.enterIndex').index($('.enterIndex[type=radio][name=' + $(this).attr('name') + ']:last'));
                NextDOM($('.enterIndex'), last_radio);
            }
        }
        return false;
    }
}
function NextDOM(myjQueryObjects, counter) {
    if (myjQueryObjects.eq(counter + 1)[0.disabled) {
        NextDOM(myjQueryObjects, counter + 1);
    }
    else {
        myjQueryObjects.eq(counter + 1).trigger('focus');
    }
}

作者: dforce    时间: 2016-4-19 16:45:44

autocomplete有onenter事件
作者: overwrite    时间: 2016-4-19 17:03:52

api里面没有啊,怎么用的啊?给个例子
作者: dforce    时间: 2016-4-19 17:22:56

overwrite 发表于 2016-4-19 17:03
api里面没有啊,怎么用的啊?给个例子

<input class="mini-autocomplete" onenter="alert(1)" ....
作者: overwrite    时间: 2016-4-19 17:43:19

我使用了这个事件,结果还是一样,在调用了onenter里面的方法后,焦点还是回到autocomplete控件上
作者: overwrite    时间: 2016-4-20 08:52:40

我在onter方法里面想将焦点定位到下一个文本框中,但是不能成功,麻烦看一下呢
<div id="trafMode"
     name="trafMode"
     textName="trafName"
     onenter="trafMode_next"
     class="mini-autocomplete" style="width:90%"
     textField="text"
     valueField="value"
     url="">
    <div property="columns">
        <div header="" field="value" width="30"></div>
        <div header="" field="text"></div>
    </div>
</div><input id="shipId" name="shipId" class="mini-textbox" style="width:60%"/>
function trafMode_next(){
    $('.shipId').focus();
}

作者: felt    时间: 2016-4-20 09:54:18

overwrite 发表于 2016-4-20 08:52
我在onter方法里面想将焦点定位到下一个文本框中,但是不能成功,麻烦看一下呢

   

延时执行,本来回车之后我们还有默认的处理
作者: 18473978769    时间: 2019-5-28 00:09:52

我想输入文字之后,回车,页面渲染我选择的数据,同时执行一个函数,这个可以实现嘛
作者: dforce    时间: 2019-5-28 09:02:57

18473978769 发表于 2019-5-28 00:09
我想输入文字之后,回车,页面渲染我选择的数据,同时执行一个函数,这个可以实现嘛 ...

监听onvaluechanged事件处理。




欢迎光临 jQuery MiniUI (http://miniui.com/discuss/) Powered by Discuz! X2