2012-12-20 2 views
1

명확성을 위해 논평 한 fiddle을 보면 쉽게 설명 할 수 있습니다. 기본적으로 Harvest의 chosen 플러그인을 사용하고 있으며, 선택한 옵션의 data-url 속성에 대한 링크 옆에 'go'버튼을 만들려고합니다. 디버깅을 시도하기 위해 콘솔을 많이 사용하고 있지만 제대로 작동하지 않습니다.jQuery + selected plugin : 선택한 옵션에 URL을 추가하십시오.

그냥이 문제가 발생하기를 바랍니다. 선택한 메뉴에서 옵션을 선택하면 href 이동 버튼이 해당 선택에 대한 링크가됩니다. 바이올린을 확인하면 모두 분명해질 것입니다.

+0

upvote에로 기능을 변경해야합니다. 선택한 것은 멋진 플러그인입니다. –

답변

3

url = $('#cancer-select option:eq(' + selectedIndex + ')').attr('data-url'); 

에 URL 선택기를 변경하고 옵션을 선택을 둘러싼 빈 <option> 태그를 제거하는 것은 그것을 해결하기 위해 보인다. OP에서

편집 :

당신은 나에게 새로운 무언가를 보여주는

$('#button-go').attr('href', '' + url); 

http://jsfiddle.net/nickcoxdotme/3cdPp/8/

+0

나는이 변경을 여기에서 만들었습니다 : http://jsfiddle.net/nickcoxdotme/3cdPp/5 /. 그러나 그것은 효과가없는 것처럼 보입니다. – nickcoxdotme

+0

아. 또한 마지막 줄'$ ('# button-go')을 만들어야했습니다. attr ('href', "+ url + '');'. [here] (http://jsfiddle.net/nickcoxdotme/3cdPp/7/)를 참조하십시오. 이 질문을 답안에 추가하면 올바르게 표시 할 수 있습니까? 또한 ('+ selectedIndex +') 구문에 대해 설명하겠습니까? 나는 그것을 본 적이 없다. – nickcoxdotme

+0

@nickcoxdotme 예, 저의 대답을 업데이트 할 것입니다. 그 라인에있는 문제는 그것이 문자열 안에 있다는 것입니다. 그래서 그것은 실제로 'selectedIndex'의 존재하지 않는 인덱스를 찾고 있었기 때문에 콘솔에'undefined '가 있습니다 – Sharlike

0

데이터 속성을 추가하고 선택한 항목을 새 목록으로 가져올 수있는 것처럼 보이지 않습니다. 그래서 나는이 제안 :

Create an array of the urls before you make the chosen and stach the url by the option name. 내가이 추가 :

var dataURLS = new Array(); 

var options = $('option'); 

options.each(function(){ 
    dataURLS[$(this).text()] = $(this).attr('data-url'); 
}); 

를이 변경이에

url = $('#cancer-select option:eq(selectedIndex)').attr('data-url'); 

:

url = dataURLS[$(this).text()]; 
$('.chzn-single').attr('href',url);    

콘솔 출력을보고 내가 생각을 너는 네가 한 일을한다.

편집 : 정확도를 위해 업데이트 됨.

+0

'href' 속성은'javascript : void (0)'을 말하고 콘솔은 여전히'url'이 정의되지 않았다고 말합니다 ... – nickcoxdotme

관련 문제