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

标签 javascript jquery jquery-chosen

我正在尝试交换两个 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 = [];

Here's a jsFiddle.

关于javascript - 在选择 Harvest Chosen 选择框之间交换选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20553881/

相关文章:

javascript - Bootstrap 3 表单向导

javascript - 停止 html5 音频

javascript - 选择的下拉菜单 : Implement non-exact search where each word will be invidualy searched

javascript - 延迟 Chosen.js 搜索过滤器

javascript - 回流如何监听异步操作完成

javascript - DOM Element 是通过 JS 注入(inject)的吗?

jquery - 如何使用 jquery 不断地旋转一个对象?

javascript - jquery 选择行克隆后未呈现

javascript - 将 css/js 缩小到各自的文件中

javascript - 添加 bodyParser() 挂起所有 api 请求