我有一个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());
固定
答案 0 :(得分:3)
如果您将select
包裹在jquery-ui autocomplete
窗口小部件中:
原始选择将被隐藏,显示的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);
}
对于组合框小工具
答案 1 :(得分:1)
没关系,错过了任务的UI部分,以下仅针对HTML。
JQuery的API-doc非常适合这类事情: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
答案 2 :(得分:0)
标签没有任何兄弟姐妹,因此如果您尝试使用兄弟属性访问输入,代码将会爆炸。点击父级,然后搜索包含输入的范围,如下所示:
$("#drop-2").parent().find("span input").val($("#drop_1");