2016-07-23 3 views
0

onethese dropdown effects이고 내 프로젝트에 통합됩니다. 나는 국가 목록을 만들고 싶습니다. 방문자가 하나를 선택하면, 그 사람을 페이지로 보낼 것입니다. 문제는 dropdown.js이 혼합되어있을 때 onChange() 이벤트가 작동하지 않는다는 것입니다.CoDrops onChange 이벤트가 작동하지 않습니다.

나는

onChange='this.form.submit()" 

onChange='sendForm()" 
... 
<script type="text/javascript"> 
function sendForm() { 
    document.getElementById("destination-select").submit(); 
} 
</script> 

내가 dropdown.js을 제거하면 두 작업으로 시도했지만, 분명히 효과가 손실됩니다.

형태가 UPDATE

<form id="destination-select" action="/" method="get"> 
    <select name="destination" id="cd-dropdown" class="cd-select" onchange="sendForm()"> 
     <option value="-1" selected>Destination</option> 
     <option value="argentina" class="icon-argentina">Argentina</option> 
     <option value="brazil" class="icon-brazil">Brazil</option> 
     <option value="spain" class="icon-spain">Spain</option> 
     <option value="more " class="icon-more">See more</option> 
    </select> 
</form> 

입니다 @Amit으로

내가 그것을 사용하고 발견하는 onOptionSelect() 메소드가있다, 지적 작동합니다. 문제는 선택한 옵션을 검색하지 않는다는 것입니다. onChange = "sendForm()"또는 onChange = "this.form.submit()"도 마찬가지입니다. 나는 심지어 .click() 메소드로 클릭 버튼을 가짜로 만들려고 시도했다. 어떤 아이디어? 감사!

코드의 비트 :

<form id="destination-select" action="/" method="get"> 
    <select name="destination" id="cd-dropdown" class="cd-select" > 
     <option value="-1" selected disabled>Destination</option> 
     <option value="argentina" class="icon-argentina">Argentina</option> 
     <option value="brazil" class="icon-brazil">Brazil</option> 
     <option value="spain" class="icon-spain">Spain</option> 
     <option value="more" class="icon-more">See more</option> 
    </select> 
</form> 

자바 스크립트 :

$(function() { 
    $('#cd-dropdown').dropdown({ 
     gutter : 5, 
     delay : 100, 
     random : true, 
     onOptionSelect: function(opt){ 
      sendForm(); 
     } 
    }); 
}); 

sendForm()

function sendForm() { 
      document.getElementById('destination-select').submit(); 
     } 

결과는 항상 : url.dev/?destination=-1

답변

1

sendForm() 함수가 있는지 확인하십시오. 이온은 당신의 HTML의 앞에 정의했다. 이 방법이 도움이되지 않으면

jquery 드롭 다운 플러그인에 구성 매개 변수 "onOptionSelect"가 있습니다. 매개 변수로 선택한 옵션을 수신하는 함수를이 매개 변수에 전달할 수 있습니다.

$("#cd-dropdown").dropdown(
    onOptionSelect: function(opt){ 
     // you can call your sendForm() here 
    } 
); 
+0

좋아요, onOptionSelect가 올바르게 작동합니다. 그러나 이제 문제는 선택된 옵션을 "-1"로 설정한다는 것입니다. 즉, 선택한 옵션을 검색하지 않고 드롭 다운의 기본 옵션을 검색합니다. 난 시도 : 'document.getElementById ('대상 선택'). 제출(); ' onOptionSelect에. 또한 sendForm() 메서드를 호출 해 보았습니다. click()을 사용하여 제출 단추를 가짜로 만들 수도 있습니다. url? destination = -1 // - 1이 기본 옵션 값입니다. –

+1

@JorgeAnzola 확인하십시오. https://gist.github.com/amitonkare/fcb9e8ea55050f29b1708612d0f2b247 선택한 옵션이 작동하고 경고합니다. – Amit

+0

Genius! 그것은 나를 많이 도왔다. 나는 아직도 양식에 문제가 있었지만 이제는 국가를 얻는 방법을 배웠으니'window.location.replace ("destination?"destination ")와 같이 할 수있다. 나는 그것이 나쁜 습관이나 무언가인지는 모르지만 일했습니다. 감사! –

관련 문제