2013-12-12 49 views
1

我想交换两个收获选择选择框之间的所有选项。该场景是我想记录一个电话的细节。呼叫可以是入站或出站。如果呼叫是出站呼叫,我填入一个选择框(呼叫者),其中列出了可以进行呼出呼叫的用户的可能值列表,第二个呼叫者(被呼叫者)列出了可以呼叫的用户的可能值列表。如果用户将呼叫类型更新为入站,则我想交换选择框,以便被叫方位于呼叫方框中,反之亦然。选择收获选择选择框之间的交换选项

我非常接近这个工作,除了每次改变呼叫类型时,它都会将值附加到每个相应呼叫者/被呼叫者选择的选择选项的末尾,而不是完全清除它们并替换所有值。

希望得到一些帮助,为什么发生这种情况。

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> 
+0

看看这篇文章,看看它是否适合你:http://stackoverflow.com/questions/47824/how-你会删除所有的选项 - 然后 - 添加一个选项 - 和 - se – Streamside

回答

2

它写的,要附加到每一个有变化的时间相同的阵列的方式。移动你的calleeOptionscallerOptions变量的变化处理程序中:

// on call type change 
$('#call_type').change(function(){ 

    var callerOptions = []; 
    var calleeOptions = []; 

Here's a jsFiddle.

+0

不能相信我错过了。谢谢,工作完美。 –