2013-12-12 6 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- do-you-remove-all-the-select-of-a-select-box-and-then-add-one-option-and-se – Streamside

답변

2

가, 같은 배열의 변화가있을 때마다에 추가되어 쓰여 방법. 변경 사항 핸들러 내부에 calleeOptionscallerOptions 변수를 이동 :

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

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

Here's a jsFiddle.

+0

내가 그것을 놓쳤다 고 생각할 수 없다. 고마워, 완벽하게 일했다. –