2012-04-12 6 views
0

저는 아약스에서 일하고 있습니다.
브라우저는 google 크롬입니다.
제출을 클릭하면 알리미가 표시되는 대신 브라우저가 양식을 제출합니다. 여기에 무슨 문제가 있습니까?Jquery. 크롬에서 작동하지 않습니다.

<html> 
    <head> 
    <script type="text/javascript" src="/cp/scripts/jquery-1.7.2.js"></script> 
    <script language="javascript"> 
    $("#test").submit(function(){ 
    //$.post("test.php", this.serialize()); 
    alert('ok'); 
    return false; 
    }); 
    </script> 
    </head> 
    <body> 
    <form id="test"> 
    <input type="text" name="name"> 
    <input type="submit"> 
    </form> 
    </body> 
    </html> 

답변

8

스크립트가 실행될 때 양식이 아직 정의되지 않았습니다. $().ready 이벤트에 랩 : "정의되지 뭐?"

$(document).ready(function() { 
    $("#test").submit(function() { 
    //$.post("test.php", this.serialize()); 
    alert('ok'); 
    return false; 
    }); 
}); 

나는 다음과 같은 질문 오는을 볼 수 있습니다.
예 :

... 
# Hey, a script tag, let's wait, and load the resource. 
<script type="text/javascript" src="/cp/scripts/jquery-1.7.2.js"></script> 

# Hey a script tag! 
<script language="javascript"> 
$("#test").submit(function(){ 
//$.post("test.php", this.serialize()); 
alert('ok'); 
return false; 
}); 
</script> 
# The script block has ended, let's parse the script 
# ... *calls* $('#test'). .... 

# Now, #test is defined. Too late... 
<form id="test"> 
# ... 
1

첫째, 기능이 document.ready에서 실행되고, 다음 기본 submit 이벤트에 대한 동작을 방지하는 것을 잊지 마세요 확인하십시오에 jsFiddle에서 테스트

$(document).ready(function() { 
    $("#test").submit(function(evt){ 
     evt.preventDefault(); 
     alert('ok'); 
     return false; 
    }); 
}); 

을 크롬.

+0

이것은 매력처럼 작동했습니다. –

+0

@HardeepBrah - 좋아요, 듣고 기쁩니다. 도움이된다면 제 답변을 수락하는 것을 잊지 마십시오. –

관련 문제