2015-11-05 72 views
0

如果主题混淆,我很抱歉。如果我通过jQuery选择真值赋值给其他选择选项

我在我的网站上有两个选择。它使用select2插件。

第一选择:

<select name="" id=""> 
    <option value="one"></option> 
    <option value="two"></option> 
    <option value="three"></option> 
    <option value="four"></option> 
    <option value="five"></option> 
</select> 

与其他一个:

<select name="" id=""> 
    <option value="other_one"></option> 
    <option value="other_two"></option> 
    <option value="other_three"></option> 
    <option value="other_four"></option> 
    <option value="other_five"></option> 
</select> 

有他们的逻辑。如果选中的值为one,则其他选择中的值必须为other_one(其他选项应禁用)。同样,其他选择选项将适用于这种情况。

我研究https://select2.github.io/options.html#adapters和Stackoverflow,是的,我可以添加触发器来选择和例如打印HTML或文本,但我需要不同的。

我该怎么办?

回答

0

您必须添加更改事件并更改第二个选择#select2的值,具体取决于从第一个选择#select1中选择的一个。

希望这会有所帮助。

$("#select1, #select2").select2(); 
 

 
$("#select1").on('change',function() 
 
{ 
 
    $('#select2 option').removeAttr('disabled'); 
 

 
    var selected_1_value = $(this).val(); 
 

 
    $("#select2").val('other_'+selected_1_value).change(); 
 
    $("#select2 option:not(:selected)").attr('disabled', 'disabled'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.0/jquery.min.js"></script> 
 

 
<link href="http://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.css" rel="stylesheet"/> 
 
<script src="http://cdnjs.cloudflare.com/ajax/libs/select2/3.5.2/select2.min.js"></script> 
 

 
<select name="" id="select1"> 
 
    <option value="one">1</option> 
 
    <option value="two">2</option> 
 
    <option value="three">3</option> 
 
    <option value="four">4</option> 
 
    <option value="five">5</option> 
 
</select> 
 
<select name="" id="select2"> 
 
    <option value="other_one">other 1</option> 
 
    <option value="other_two">other 2</option> 
 
    <option value="other_three">other 3</option> 
 
    <option value="other_four">other 4</option> 
 
    <option value="other_five">other 5</option> 
 
</select>

+0

感谢您的解决方案。我改变了我的结构litte位,但不工作if-else条件。请你能检查一下吗? http://pastebin.com/WcGH4ffT –

+0

不客气,检查控制台是否有任何错误消息,如果你可以为你的代码做一个小提琴,所以我可以和你一起检查。 –

1
<select name="" id="select1"> 
<option value="one">one</option> 
<option value="two">two</option> 
<option value="three">three</option> 
<option value="four">four</option> 
<option value="five">five</option> 

<select name="" id="select2"> 
    <option value="other_one">other_one</option> 
    <option value="other_two">other_two</option> 
    <option value="other_three">other_three</option> 
    <option value="other_four">other_four</option> 
    <option value="other_five">other_five</option> 
</select> 

$('select').select2(); 

$("#select1").change(function() 
{ 
    $('#select2 option').prop("disabled",false); // remove disabled on all options - basically do a reset 
    $('#select2 option:selected').prop("disabled",true); // disable the current selected option 
    $('#select2').select2().select2('val', "other_" + $(this).val()); // set the value of #select2 by concatenating the value from #select1 
    $('#select2 option:not(:selected)').prop("disabled",true); // disable all other non-selected options 
}); 

http://jsfiddle.net/o5y9959b/10/