【问题标题】:chosen combobox jquery library update text选择的组合框 jquery 库更新文本
【发布时间】:2013-04-10 14:23:58
【问题描述】:

大家好,我的页面中有两个组合框,我正在使用 selected() jquery 库。 现在我想做的是将文本从 combo1 交换到 combo2 。 我已经尝试过这样的事情。

var startint = $("#StartLocations").attr("selectedIndex");
        var endint = $("#EndLocations").attr("selectedIndex");

        $("#EndLocations").attr("selectedIndex", startint);
        $("#StartLocations").attr("selectedIndex", endint);
        $('#StartLocations').trigger("liszt:updated");

其中结束位置和开始位置是组合框的名称。 有什么想法可以实现吗?

【问题讨论】:

    标签: jquery jquery-chosen


    【解决方案1】:

    可以使用 .val() 函数检索和设置组合框值。

    HTML:

    <select id="a">
        <option value="1">one</option>
        <option value="2">two</option>
        <option value="3">three</option>
    </select>
    <select id="b">
        <option value="1">one</option>
        <option value="2">two</option>
        <option value="3">three</option>
    </select>
    <button id="switch">Switch</button>
    

    JavaSript:

    $("#switch").click(function(){
        var valA = $("#a").val();
        var valB = $("#b").val();
        $("#a").val(valB);
        $("#b").val(valA);
    });
    

    请看这个小提琴的例子:http://jsfiddle.net/lopisan/Exf4Y/

    【讨论】:

    • 抱歉,这些组合框已被所选库变成输入框,以具有自动提示功能,我已经尝试过您的建议,感谢您的回复,但这不是我想要的。
    【解决方案2】:

    So it appears that when chosen library takes over it essentially hides the select object and puts in an span with a text from the select from the hidden select.我用来实际更改文本的技巧是简单地跟踪该特定对象下的跨度。所以换句话说就是这样。

            var StartNode = $("#StartLocations").val();
            var EndNode = $("#EndLocations").val();        
            $("#StartLocations_chzn a > span").text( EndNode);
            $("#EndLocations_chzn a > span").text(StartNode); 
    

    希望这对其他菜鸟有所帮助。 米格尔

    【讨论】:

      【解决方案3】:

      米格尔对他自己的问题的回答会起作用,但它确实将您与选择输出的特定标记联系起来。

      另一种方法仍然与选择相关,但至少使用其 JavaScript API 而不是通过标记进行拖网搜索,即按照 lopisan 的建议更新选择框,然后触发专有的 liszt:updated 事件。像这样的:

      $("#switch").click(function(){
        var valA = $("#a").val();
        var valB = $("#b").val();
        $("#a").val(valB);
        $("#b").val(valA);
        $("#a").trigger("liszt:updated");
        $("#b").trigger("liszt:updated");
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-12-06
        • 2021-08-17
        • 1970-01-01
        相关资源
        最近更新 更多