小编And*_*mos的帖子

JQuery UI自动完成(1.8)滚动

我在配置JQuery-UI的自动完成模块时遇到了麻烦.我需要当要选择的数据量足够大时会出现滚动条.

这是我试过的:

  • jquery-ui-1.8.16.css我设置这个:
ui.autocomplete{
    max-height: 100px;
    overflow-y: auto;
    overflow-x: hidden;
}
Run Code Online (Sandbox Code Playgroud)

*如ui-documentation示例中所示

这是我声明和自动完成输入的方式:

$("#myInput").autocomplete({
    source: mySource,
    minLength: 0,
});
Run Code Online (Sandbox Code Playgroud)

我不知道为什么滚动条没有出现,任何帮助将不胜感激.非常感谢你!

jquery scroll jquery-ui jquery-scrollable jquery-ui-autocomplete

23
推荐指数
1
解决办法
3万
查看次数

等到所有ajax请求完成

我需要等到我的所有ajax函数完成后再继续执行exectution.

我的具体情况是我需要在提交之前翻译表单中的某些字段.我通过对外部站点的ajax调用来翻译它们.根据表单中的某些值,我需要做更多或更少的翻译.完成所有翻译后(如果有的话)我必须用ajax验证表单,如果有效,则提交.

这是我的方法:
首先,我有一个函数发送ajax调用并对收到的数据做一些事情:

function translate(...) {
    $("#ajaxCounter").val(parseInt($("#ajaxCounter").val()) + 1);
    $.ajax({
        ...
        success:function(data) {
            ...
            $("#ajacCounter").val(parseInt($("#ajaxCounter").val()) - 1);
        }
    });
Run Code Online (Sandbox Code Playgroud)

然后,当要提交表单时,我执行以下代码:

$("#form").submit(function() {
    translatable_fields.each(function() {
        translate(...);
    });
    while (parseInt($("#ajaxCounter").val()) > 0) { null; }
    if (!(this).hasClass('ready')) {
        $.ajax({
            //validation
            success: function(data) {
                if (data['isValid']) {
                    $("#form").addClass('ready');
                    $("#form").submit();
                }
            }
        });
    }
    return true;
});
Run Code Online (Sandbox Code Playgroud)

问题是while提交函数中的循环永远不会结束.

如果我在没有while循环的情况下执行代码,我可以看到ajaxCounter输入在翻译函数开始时增加,在结束时减少.

javascript forms ajax jquery

3
推荐指数
1
解决办法
4490
查看次数