2013-11-22 3 views
0

JavaScript 및 jquery를 처음 사용하며 제출하기 전에 양식의 필드를 확인하고 싶습니다. 그러나 How to do something before on submit?에서 가져온 간단한 예제조차도 작동하지 않습니다. Firefox에서 알림을 표시하지 않으며 웹 개발자 콘솔에 오류가 표시되지 않습니다. 코드를 참조하십시오 간단한 jquery가 작동하지 않습니다.

<html> 
<head> 

<script src="jquery.min.js"></script> 
<script type="text/javascript"> 
$('#myForm').submit(function() { 
    alert('Handler for .submit() called.'); 
    return false; 
}); 
</script> 
</head> 

<body> 


<form id="myForm" action="foo.php" method="get"> 
    <input type="text" value="" /> 
    <input type="submit" value="submit form" /> 
</form> 



</body> 
</html> 

그리고 물론 같은 폴더에 "jquery.min.js는"이

.

+4

'document.ready' 이벤트 **에 코드를 래핑하거나 ** 닫는'body' 태그 앞에 스크립트를 추가하십시오. – elclanrs

+1

코드를 래핑하려면 DOM 준비 처리기가 필요합니다. 자세한 내용은 [here] (http://learn.jquery.com/using-jquery-core/document-ready/)를 참조하십시오. – Nunners

+1

[jQuery의 설명서] (http://learn.jquery.com/about-jquery/how-jquery-works/)를 읽는 것이 좋습니다. 여기에는 다음과 같이 쓰여 있습니다. * "문서를 조작 할 준비가 되 자마자 코드를 실행하려면 jQuery에 준비 이벤트로 알려진 명세서가 있습니다." –

답변

3

당신은 JS 코드가 실행되는 DOM 준비 처리기

jQuery(function() { 
    $('#myForm').submit(function() { 
     alert('Handler for .submit() called.'); 
     return false; 
    }); 
}) 
1

에 스크립트를 추가해야하는 HTML 요소에 이미 존재있다. 코드 스트랫을 지연하기 위해, 위와 같이 document.ready를 사용

<script type="text/javascript"> 
$(document).ready(function(){ 
    $('#myForm').submit(function() { 
    alert('Handler for .submit() called.'); 
    return false; 
    }); 
}); 
</script> 

참고 : 구문 $('#myForm').submit(function() {은 더 이상 사용되지 않으며 아마 비슷한 $(document).on("submit", "#myForm", function() {이나 뭐 :)

EDIT로 대체해야합니다 또한 당신에게 무엇을 , e.preventDefault()에 대한 javascript 설명서를 참조하십시오.이 스크립트는 원하는대로 유용 할 수도 있습니다.

1

DOM에 이미 추가 된 요소 다음에 스크립트를 설정하면 작동합니다.

<html> 

    <head> 
     <script src="jquery.min.js"></script> 
    </head> 

    <body> 
     <form id="myForm" action="foo.php" method="get"> 
      <input type="text" value="" /> 
      <input type="submit" value="submit form" /> 
     </form> 
     <script type="text/javascript"> 
      $('#myForm').submit(function() { 
       alert('Handler for .submit() called.'); 
       return false; 
      }); 
     </script> 
    </body> 

0
<html> 
    <head> 
    <script src="jquery.min.js"></script> 
    <script type="text/javascript"> 
    $(document).ready(function(){ 
    $('#myForm').submit(function() { 
     alert('Handler for .submit() called.'); 
     return false; 
    }); 
    }); 
    </script> 
    </head> 
    <body> 
    <form id="myForm" action="foo.php" method="get"> 
     <input type="text" value="" /> 
     <input type="submit" value="submit form" onsubmit="submit" /> 
    </form> 
</body> 
</html> 

데모 : 몇 번 return false;jquery에 대한 몇 가지 코드에 적용되지 않을 수 있습니다 때문에 e.preventDefault(); 대신 return false;

$(function() { $('#myForm').submit(function(e) { e.preventDefault(); alert('Handler for .submit called.'); }); });

을 시도해야 http://jsfiddle.net/kapil_dev/6Tf7Y/

관련 문제