3

我有一个 JQuery UI 下拉菜单。其实我有2个。

我在第一个中选择了一些东西,将复选框设置为 true。在该复选框的 .change() 中,我想将所选值从第一个下拉列表复制到第二个下拉列表。

我得到$('#drop_1').val()选定的值。

我想我可以用$('#drop_1').val($('#drop_2').val()). 可悲的是,这只适用于正常的下拉菜单。有没有办法像这样设置值:

$('#drop_1').find('option:selected').text();

知道我该怎么做吗?

这成功了,现在可以了。该值已设置,但未显示在 UI 中。

var selected_campaign = $('#campaign_id').val();
$('#follow_campaign_id').val(selected_campaign);
$('#follow_campaign_id').next().find('input.ui-combobox-input').val($('#follow_campaign_id').children('option[value=' +selected_campaign+ ']').html());

固定的

4

3 回答 3

3

如果您将您的包装select在 jquery-uiautocomplete小部件中:

原始选择将被隐藏,显示的 html 是输入。

您还需要设置此输入的值:

function(){
    var newval = $('#drop_1').val();

    $('#drop_2').val( newval );
    //you will have to find the correct selector for your particular settings here.
    //I base this code on the jquery-ui demo (see link below) :
    var $input = $('#drop_2').sibling('span.ui-combobox').find('input');
    $input.val(newval);
}

用于组合框小部件的 jquery-ui 演示

于 2013-03-20T08:33:23.997 回答
1

没关系,错过了任务的 UI 部分,以下仅适用于 HTML。

JQuery 的 API 文档非常适合这类事情:http ://api.jquery.com/val/ 。话虽如此,这应该可以解决问题:

<script type="text/javascript">
function setDrop2() {
// only change if checkbox is true
if ($('#check_1').is(':checked')) {
    $("#drop_2").val($("#drop_1").val());
}
}
</script>

<select id="drop_1">
  <option>option_1</option><option>option_2</option><option>option_3</option>
</select> drop_1  
<input type="checkbox" id="check_1" value="check1" onchange="javascript:setDrop2()"/> check_1
<select id="drop_2">
  <option>option_1</option><option>option_2</option><option>option_3</option>
</select> drop_2
于 2013-03-20T08:08:08.397 回答
0

该标签没有任何兄弟,因此如果您尝试使用兄弟属性获取输入,代码将爆炸。点击父级,然后搜索包含输入的跨度,如下所示:

$("#drop-2").parent().find("span input").val($("#drop_1");
于 2014-01-28T21:03:36.980 回答