미채택 완료

자바스크립트 alert 후에 location 문제

안녕하세요.

아래 코드에서..  아래거는 잘 되는데, 위에거는 안되는데요.

왜일까요? ㅠ

단순하게.. 경고창 하나 뜨게하고, 지정된 화면으로 이동을 하는건데요.

아래처럼 단독으로 함수를 만들어ㅓ 하면 되는데

위처럼 엔터키를 입력햇을때 등.. 이런 키이벤트가 들어가면 안되는거 같은데.. 

고수님들 봐주시면 감사하겠습니다.

==============================================

// 엔터키 누름 -> 경고창 후 location.href 이동이 안됨.


    $(document).ready(function() {
        $("#search").keydown(function(key) {
            if (key.keyCode == 13) {
                alert("<?=$row2[auth_ment]?>");
                top.location.href = "<?=$row2[auth_url]?>";
            }
        });
    });
 

// 잘 됨.

    function auth_chk(){
        alert("<?=$row2[auth_ment]?>");
        top.location.href = "<?=$row2[auth_url]?>";
    }

|

답변 2개 / 댓글 6개

이벤트 핸들러 상단에 preventDefault(); 를 추가해보세요.

Copy
$(document).ready(function() {
        $("#search").keydown(function(key) {

            key.preventDefault();   //추가

            if (key.keyCode == 13) {
                alert("<?=$row2[auth_ment]?>");
                top.location.href = "<?=$row2[auth_url]?>";
            }
        });
    });

코드는 문제 없어 보입니다.

변환된 javascript 코드자체를 보세요

답변에 대한 댓글 6개

변환된 코드가 어떤걸 말하는건가요? 고수분들이 쓰시는 방법? 용어? 인가요?
해당 페이지에서 소스보기 하면 나오는 javascript 코드를 이야기 하는 겁니다.

추가로 key.keyCode 도 alert 로 뿌려보세요
말씀하신대로 코드 적어봅니다.
같은건데.. 이상하게 위에 함수는
경고창 이후에 이동을 못하네요.

$(document).ready(function() {
$("#search").keydown(function(key) {
if (key.keyCode == 13) {
alert("로그인 후 캘린더를 무료로 사용할 수 있습니다.");
top.location.href = "http://jnbstock.com/member.html?section=login";
}
});
});

function auth_chk(){
alert("로그인 후 캘린더를 무료로 사용할 수 있습니다.");
top.location.href = "http://jnbstock.com/member.html?section=login";
}
코드 자체는 안될이유가 없습니다.

top 객체가 아래코드와 위 코드가 다른가 봅니다.
top 객체를 확인해보세요
top. 객체는 써도 그대로고, 안써도 동일하네요.
그래서 더 환장...

위에 함수는 경고창까지만 나오고, 이동만 못합니다.
top 객체를 console.log 로 찍어보세요
가능하다면 break 걸어서 해보셔도 되구요

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