-1

大家好,我的页面中有两个组合框,我正在使用 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");

其中结束位置和开始位置是组合框的名称。任何想法我可以如何完成这个?

4

3 回答 3

0

可以使用 .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>

Java脚本:

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

请参阅此小提琴示例:http: //jsfiddle.net/lopisan/Exf4Y/

于 2013-04-10T14:30:37.383 回答
0

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); 

希望这有助于其他一些菜鸟。米格尔

于 2013-04-10T19:57:16.503 回答
0

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

另一种方法仍然与 selected 相关,但至少使用其 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");
});
于 2013-05-14T12:54:23.247 回答