Ajax填充下拉菜单,只需单击两次

雅各布

我的网页是我公司的内部数据库移动工具。我有一节针对源和目标。

我有用于主机和端口的单选按钮,以及用于数据库名称的下拉列表。设置主机和端口后,我在下拉菜单中获得了一个点击事件捕获,该事件将ajax请求发送到php页面,该页面查询该实例上的数据库并填充下拉菜单选项(这是针对目标下拉菜单):

    $("#targetDrop").one("click",function() {
    ajaxTarget();
     });


function ajaxTarget() {
    $.ajax({
        url: './dbLookup.php',
        type: 'POST',
        dataType: "json",
        data: {
            host: $("#targetHost:checked").val(),
            port: $("#targetPort:checked").val()
        }
    })
        .done(function(result) {
            console.log("Setting Result");
            for (i=0; i<result.length; i++) {
                $("#targetDrop").append("<option name=\"targetDB\" value=\"" + result[i] + "\">" + result[i] + "</option>");
            }
        })
        .fail(errorFn)
        .always(function (data,textStatus,jqXHR){
            console.log("The request is complete!")
        });

我的问题是,您必须单击一次下拉列表(没有任何显示),取消选择它,然后再次单击它以查看填充的值。这是有道理的,将其视为点击即可生成数据,因此我需要重新选择下拉菜单以查看新数据。

有没有办法使所有这些操作都在第一次点击时发生?

谢谢!

蒂普·扎恩·苏丹

还有另一种更有效的方法可以实现此目的:

$("#targetHost, #targetPort").change(function () {
    if ($.trim($("#targetHost:checked").val()) != "" && $.trim($("#targetPort:checked").val()) != "") {
        dbLookUp();
    }
});

function dbLookUp() {
    var data = {
            host: $("#targetHost:checked").val(),
            port: $("#targetPort:checked").val()
        }
    $.ajax({
        url: './dbLookup.php',
        type: 'POST',
        dataType: "json",
        data: data,
    }).done(function(response) {
        var opts = '<option value="">Choose Database...</option>';
        $.each(response, function(index, data) {
            opts += '<option name="targetDB" value="' + data + '">' + data + '</option>';
        });
        $("#targetDrop").html(opts);
    }).fail(function(response) {
        console.log(response);
    });
}

dbLookUp(); // Add this line if you have default selection for host and port
            // and you want to load the DB list as soon as the page loads up.

这样,您无需单击下拉菜单即可将其加载...选择主机和端口后,它将立即加载doropdown。您甚至可以在第一页加载时加载数据库列表。

希望这可以帮助。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Angular.js奇怪的行为-必须单击两次按钮才能显示下拉菜单

来自分类Dev

单击按钮重新填充下拉菜单

来自分类Dev

停止菜单项在简单的HTML下拉菜单上出现两次

来自分类Dev

单击两个下拉菜单

来自分类Dev

设置AJAX通话并填充下拉菜单

来自分类Dev

Ajax调用后填充下拉菜单

来自分类Dev

通过AJAX填充下拉菜单失败

来自分类Dev

当我选择下拉菜单时两次显示按钮

来自分类Dev

UITableView和presentViewController只需单击两次即可显示

来自分类Dev

单击下拉菜单

来自分类Dev

单击按钮如何填充聚合物下拉菜单?

来自分类Dev

React中的语义UI下拉菜单:<a href>用作内容时,onChange触发了两次

来自分类Dev

Excel:是什么导致一个选项在下拉菜单中出现两次?

来自分类Dev

用两个变量填充动态下拉菜单

来自分类Dev

单击 1 按钮激活两个下拉菜单

来自分类Dev

PHP Ajax调用以清除并填充下拉菜单

来自分类Dev

聚合物下拉菜单-通过Ajax填充吗?

来自分类Dev

PHP填充下拉菜单

来自分类Dev

Infragistics填充下拉菜单

来自分类Dev

下拉菜单+自动填充

来自分类Dev

单击下拉菜单滚动

来自分类Dev

为什么jQuery下拉列表需要两次单击?

来自分类Dev

带两个下拉菜单的Ajax搜索

来自分类Dev

单击jQuery或JavaScript菜单下拉菜单

来自分类Dev

只需两次单击即可加载Modal和SideNav(带有Materialize的流星)

来自分类Dev

Bootstrap Popover只需单击两次即可打开弹出窗口

来自分类Dev

只需单击两次即可提交表单-JQuery(例如stackoverflow复习问题)

来自分类Dev

测试AJAX下拉菜单

来自分类Dev

jQuery Ajax表单仅在单击两次后提交

Related 相关文章

热门标签

归档