2014-11-24 2 views
1

제출해야하는 양식이 있고 Ajax 및 jQuery를 사용하여 mysql에 데이터를 전송했지만 제출을 클릭하면 페이지가 새로 고쳐지고 jQuery 코드가 실행되지 않습니다. 여기jQuery가 양식 및 페이지 새로 고치기를 회수하지 않습니다.

<form class="form-horizontal" role="form" action="" method="post"> 
     <input type="text" id="firstname" class="form-control" placeholder="Firstname" required=""></br> 
     <input type="text" id="lastname" class="form-control" placeholder="Lastname" required=""></br> 
     <input type="text" id="signup_email" class="form-control" placeholder="Email address" required=""></br> 
     <select id="gender" class="form-control"> 
      <option>Select Gender</option> 
      <option value="male">Male</option> 
      <option value="female">Female</option> 
     </select></br> 
     <input type="password" id="signup_password" class="form-control" placeholder="Password" required=""> 
     <input type="submit" id="signup_button" name="signup_button" class="btn btn-primary" value="Sign up"> 
    </form> 

그리고 내 jQuery를 다음과 같습니다 :

<script type="text/javascript"> 
    $(function()){ 
     $("#signup_button").click(function() { 
      var firstname = $("input#firstname").val(); 
      var lastname = $("input#lastname").val(); 
      var email = $("input#signup_email").val(); 
      var gender = $("select#gender").val(); 
      var password = $("input#signup_password").val(); 

      var datastring = 'new=yes'+'&firstname='+firstname+'&lastname='+lastname'&email='+email+'&gender='+gender+'&password='+password; 

      $.ajax({ 
       type:"POST"; 
       url:"api/signup.php"; 
       data: datastring; 
       cache: true; 
       success: function(html) { 
        $.("#alert_succes_congrats").css('display', ''); 
       } 
      }) 
      return false; 
     }) 
    } 
</script> 

감사합니다

여기 내 HTML 코드입니다.

1 옵션 :

변경

<input type="submit" id="signup_button" name="signup_button" class="btn btn-primary" value="Sign up"> 

<input type="button" id="signup_button" name="signup_button" class="btn btn-primary" value="Sign up"> 

너무 버튼이 양식을 트리거하지 않습니다

+1

작동합니다 - 대신 양식에 이벤트를 제출 수신. 그렇지 않으면, 입력란을 눌러 양식을 제출하면 JS를 우회합니다. JS가 실행 중이 아니라고 말하면 어떻게 해결 했습니까? 실행 중인지 확인하기 위해 여러 장소에 알림을 했습니까? 콘솔의 오류? – Utkanos

답변

0

당신의 코드가 구문 오류가 많이 있습니다

$(function()){ 

$(function(){ 

이어야한다 플러스 아약스 회원 쉼표가 아닌 세미콜론으로 구분되어야한다, 문자열 연결에 문제가 거기 있었다 잘. 다음에 이런 일이 발생하면 브라우저 콘솔에서 자바 스크립트 문제를 확인하십시오.

이 클릭 이벤트로 양식 제출을 수신하지 마십시오

<script type="text/javascript"> 
$(function(){ 
    $("#signup_button").click(function() { 
     var firstname = $("input#firstname").val(); 
     var lastname = $("input#lastname").val(); 
     var email = $("input#signup_email").val(); 
     var gender = $("select#gender").val(); 
     var password = $("input#signup_password").val(); 

     var datastring = 'new=yes'+'&firstname='+firstname+'&lastname='+lastname+'&email='+email+'&gender='+gender+'&password='+password; 

     $.ajax({ 
      type:"POST", 
      url:"api/signup.php", 
      data: datastring, 
      cache: true, 
      success: function(html) { 
       $("#alert_succes_congrats").css('display', ''); 
      } 
     }); 
    return false; 
    }); 
}); 

2

당신은 당신의 문제를 해결하기 위해 두 가지 옵션이 있습니다 제출하십시오.

2 옵션 :

당신의 클릭 핸들러에서에서는 event.preventDefault을 넣습니다.

$("#signup_button").click(function(event) { 
    /* Your stuff */ 
    event.preventDefault(); 
} 

따라서 제출 버튼을 구성하기위한 브라우저 기본 동작을 트리거하지 않습니다.

+0

내 JS를 유발하지 않아. 어떤 아이디어? –

+0

이상한. JS가 처리기를 '# signup_button' ** click ** 이벤트로 바인딩하기 때문에 JS가 트리거되어야합니다. 양식 제출 이벤트가 아닙니다. –

+0

글쎄, rt.kthorndahl.com에서해볼 수있다. 내가 많은 시간을 사용하여 완벽하게 작동했기 때문에 나에게 이상하다. –

관련 문제