채택완료

콤보박스 선택시 페이지 이동 질문 있습니다.!!!

2017-01-06 (금) 17:01:42 4,839

어떤 옵션은 그냥 현재창에서 띄우고 어떤 옵션에서는 _BLANK 띄우고 싶은데 다른 글에서 퍼와서 사용해봤는데 잘안되네요 ㅠㅠ

<script language="javascript">

function jumpMenu(frm){

if( frm.jump.options.selectedIndex != 0 ){

if( frm.jump.options[frm.jump.selectedIndex].target  == "_blank" ){ //_blank이면 새창을 띄움

window.open(frm.jump.options[frm.jump.selectedIndex].value,"new","");

} else {

location.href=frm.jump.options[frm.jump.selectedIndex].value;

}

}

}

</script>

<form name="form">

<select name="jump" onchange="jumpMenu(this.form)"> 

<option value="<?php echo G5_BBS_URL; ?>/board.php?bo_table=client" target="_blank">회원사소개</option>

<option value="<?php echo G5_BBS_URL; ?>/content.php?co_id=joinguide">회원가입안내</option>

<option value="<?php echo G5_BBS_URL; ?>/board.php?bo_table=notice">공지사항</option>

</select> 

</form>

|

답변 5개 / 댓글 4개

채택된 답변
+20 포인트
Copy
<script language="javascript">  function jumpMenu(frm){     if( frm.jump.options.selectedIndex != 0 ){      if( frm.jump.options[frm.jump.selectedIndex].getAttribute('target')  == "_blank" ){ //_blank이면 새창을 띄움        window.open(frm.jump.options[frm.jump.selectedIndex].value,"new","");      } else {        location.href=frm.jump.options[frm.jump.selectedIndex].value;      }    }  }</script>

option 에는 target 속성이 없죠 그래서 직접 접근못합니다. 임의로 설정한 속성은 getAttribute 으로 접근해야합니다.~~~

성피리님 코드가 더 간결하고 좋긴한데 질문자님 코드보면 jquery 할 가능성은 없어보여서 공부하기엔 이 코드가 더 좋을거예요

답변에 대한 댓글 1개

스크립트 쪽 공부를 해야되는데 ... 얼추 해석만 가능하고 제가 직접짜는 게 힘들어요 ㅠㅠ 혹시 좋은 사이트 알고 계신가요

http://www.w3schools.com/ - html5까지 크로스 브라우징까지 다 좋지만 영어의 장벽, 하지만 참고하기에 좋음 자주볼수록 실력이 늘어남. 

http://koxo.com/ 

기본에 충실할수 있음. 하지만 오래된 사이트라서 html5 와 같은 최신정보들이 부족함.

익스에서만 지원하는것도 무분별하게 나열되어서 무조건적인 학습은 혼란을 초래할수 있음.

항목별로 w3school과 비교하며 보면 나름대로 큰 도움이 됨

https://opentutorials.org/course/2039 

생활코딩

http://naradesign.net/open_content/lecture/wp/#section1 

Copy
<select name="jump" id="jump-select"> 	<option value="">선택</option>	<option value="<?php echo G5_BBS_URL; ?>/board.php?bo_table=client" target="_blank">회원사소개</option>	<option value="<?php echo G5_BBS_URL; ?>/content.php?co_id=joinguide">회원가입안내</option>	<option value="<?php echo G5_BBS_URL; ?>/board.php?bo_table=notice">공지사항</option></select>  <script type="text/javascript">$(function(){	$("#jump-select").change(function(){		if(!$(this).val()) return false;		if($("option:selected", this).attr('target')=="_blank")		{			console.log($("option:selected").index());			window.open($(this).val(),"new"+$("option:selected", this).index(),"");		}		else		{			location.href=$(this).val();		}	});});</script>

답변에 대한 댓글 1개

2017-01-06 (금) 17:27:50
이건 무조건 새창

<select name="jump" onchange="jumpMenu(this.form)">

여기 name 값으로 하는 거 말고 id 값으로 하는 소스를 찾아보세요

답변에 대한 댓글 2개

제가 스크립트 쪽은 완전 잼병이라... id로 option의 target이 접근이 가능한가요?
2017-01-06 (금) 17:32:17
id 없어도 컨트롤 할수 있는 환경에서 id 사용은 자원낭비....
자기 편하려고 무조건적으로 id 사용해서 그것으로만 접근하려고 하면 실력이 안늘어요...

답변을 작성하려면 로그인이 필요합니다.