2012-12-13 4 views
1

편집 : 링크에서 http : //를 잊어 버렸습니다. 이건 내 문제가 아니야. 내가 질문 ...옵션 항목이 선택되었습니다.

내가 다음과 같이 몇 가지 옵션을 수정합니다 : 나는 JQuery와 수신기를 가지고 이것에

<select class="mySelect"> 
    <option value="http://www.url1.com">Url 1</option> <!--Default displayed---> 
    <option value="http://www.url2.com">Url 2</option> 
    <option value="http://www.url3.com">Url 3</option> 
</select> 

를 다음과 같습니다

$('.mySelect').change(function(){ 
    window.location.replace($(this).val()); 
}); 

을이 단지 때문에 변경에 응답, 나는 "www.url1.com"로 리디렉션 할 수 없습니다. 무엇을 사용해야합니까? 나는 단지 구글에 대한 제안을 얻는다.

편집 2 : 첫 번째 옵션으로 더미를 사용하는 것에 대한 해결책이 많습니다. 또한 버튼을 사용하여 선택한 옵션을 읽고 리디렉션하는 버튼을 사용하는 다른 솔루션을 가지고 있습니다. 그러나이 옵션이 실제로는 좋은 해결책이더라도 작업중인 프로젝트에서 사용할 수 없습니다.

이 경우, 변경 사항이 자체적으로 변경된 경우에도 사용법을 듣고 싶습니다. 첫 번째 옵션 (기본적으로 선택됨)을 선택하는 것과 같습니다. 리디렉션 위의 사례. 나는 누군가가이 문제에 대한 좋은 해결책을 가지고 있다면 그것을 열어 둘 것이다. 빈 값의 첫 번째 옵션에 넣어

+9

"URL 선택 ..."과 같은 첫 번째 옵션으로 더미 옵션을 넣을 수 있습니다. –

+0

예, 그 옵션입니다. 하지만 실제로 작업하고있는 것은 아닙니다. :) – gubbfett

답변

8

시도 :

<select class="mySelect"> 
    <option value="">Please select...</option> 
    <option value="http://www.url1.com">Url 1</option> 
    <option value="http://www.url2.com">Url 2</option> 
    <option value="http://www.url3.com">Url 3</option> 
</select> 

그런 다음 리디렉션하기 전에 값이 있는지 확인하기 위해 jQuery를 수정할 수 있습니다 :

$('.mySelect').change(function(){ 
    var value = $(this).val(); 
    if (value != "") { 
     window.location.replace(value); 
    } 
}); 

Example fiddle

참고도 링크 값에 http:// (또는 사용중인 프로토콜)이 필요합니다.


당신이 더미 옵션이없는 것을 선호하는 경우, 당신은 버튼 클릭에서 작동하는 논리를 변경해야

업데이트 : 당신은이

<select class="mySelect"> 
    <option value="http://www.url1.com">Url 1</option> 
    <option value="http://www.url2.com">Url 2</option> 
    <option value="http://www.url3.com">Url 3</option> 
</select> 
<button id="redirect">Go</button> 
$("#redirect").click(function() { 
    window.location.replace($(".mySelect").val()); 
}); 
+0

예. 죄송합니다. http : //가 있습니다. 나는이 예제에서 그것을 잊었다;) 나는 그것을 시도 할 것이다! – gubbfett

+0

이 경우 나는 어떤 인형도 원하지 않습니다. 그렇지 않으면 그것은 최고의 물건 일 것입니다, 그렇습니다! – gubbfett

+0

그런 경우 첫 번째 URL을 선택할 수 없으므로 'onchange'를 원하는대로 할 수 없습니다. 버튼을 클릭하고 버튼을 클릭하면 선택한 URL로 리디렉션됩니다. –

0

넣을 http://

window.location.replace("http://"+$(this).val()); 
+0

은 'http : //'가 있으면 해를 끼치 지 않지만 실제로 문제를 해결하지는 않습니다. – jbabey

-1
<form> 
<select class="mySelect"> 
    <option value="" selected="selected">Please Select</option> 
    <option value="www.url1.com">Url 1</option> 
    <option value="www.url2.com">Url 2</option> 
    <option value="www.url3.com">Url 3</option> 
</select> 
</form>​ 

$(".mySelect").change(function() { 
var n = $(this).val(); 
if(n != "") { 
window.location.assign("http://"+n); 
} 
});​ 
+0

이 경우 나는 어떤 인형도 원하지 않습니다. 그렇지 않으면 그것은 최고의 물건 일 것입니다, 그렇습니다! – gubbfett

+0

도대체 어떻게 된거 야? 누가 내 대답을 싫어 했습니까? –

0

하나의 옵션은

<select class="mySelect"> 
    <option value="select">Select URL</option> <!--Default displayed---> 
    <option value="www.url1.com">Url 1</option> 
    <option value="www.url2.com">Url 2</option> 
    <option value="www.url3.com">Url 3</option> 
    </select> 

같은 첫 번째 옵션을 변경하거나 콤보 상자 클릭 JQuery와 이벤트를 사용할 수 있도록 할 수 있습니다.

+0

예, 저는 case 2와 같은 작업을 수행하려고합니다. 그러나 "click()"은 combobox에서 트리거되지 않습니다. 적어도 mac os에서는 크롬이 아닙니다. – gubbfett

관련 문제