在选择Harvest Chosen选择框之间交换选项

Swap options between select Harvest Chosen select boxes

本文关键字:选择 交换 选项 之间 Chosen Harvest      更新时间:2023-09-26

我正在尝试在两个Harvest Chosen选择框之间交换所有选项。场景是我想记录一个电话的详细信息。呼叫可以是入站呼叫,也可以是出站呼叫。如果呼叫是出站的,我会在一个选择框(调用者)中填充可以进行出站呼叫的用户的可能值列表,在第二个框(被叫方)中填充他们可以进行呼叫的用户可能值列表。如果用户将呼叫类型更新为入站,则我希望交换选择框,以便被叫方在调用者框中,反之亦然。

我几乎做到了这一点,除了每次更改调用类型时,它都会将值附加到每个调用方/被调用方选择的选择选项的末尾,而不是完全清除它们并替换所有值。

对于为什么会发生这种情况,我们将不胜感激。

请参阅http://jsfiddle.net/RyHFK

HTML

<label for="call_type">Call Type:</label>
<select name="call_type" id="call_type" class="chosen">
    <option value="OUTGOING">Outgoing</option>
    <option value="INCOMING">Incoming</option>                                                  
</select>
<label for="caller">Caller:</label>
<select name="caller" id="caller" class="caller chosen">
   <option value="Caller 1">Caller 1</option>   
   <option value="Caller 2">Caller 2</option>   
   <option value="Caller 3">Caller 3</option>   
  <option value="OTHER">Other</option>
</select>
<label for="caller">Callee:</label>
<select name="callee" id="callee" class="callee chosen">
   <option value="Callee 1">Callee 1</option>   
   <option value="Callee 2">Callee 2</option>   
   <option value="Callee 3">Callee 3</option>   
   <option value="OTHER">Other</option>
</select>

它的编写方式是,每次发生更改时都要追加到相同的数组中。在变更处理程序中移动calleeOptionscallerOptions变量

// on call type change
$('#call_type').change(function(){
    var callerOptions = [];
    var calleeOptions = [];

这是一个jsFiddle。