2015-02-09 159 views
-1

我有一個Ajax方法的問題。我有一個帶有兩個字段的表單,電子郵件和密碼。當我使用id = registroAction的標籤「a」時,我調用ajax方法並跳到其他地方。阿賈克斯不工作

我的代碼:

<form id="form-registro" class="margen-left-445 absoluto margen-top-40 azul-corporativo"> 
     <p class="bg-success espaciointerior-10 mensaje_activacion" style="display:none"></p> 
     <p class="bg-danger espaciointerior-10 mensaje_activacion" style="display:none"></p> 
     <h3 style="text-align: center; color: #044E7C;">Registrate gratis</h3> 
     <div class="input-group"> 
      <input type="text" id="email" class="input-generico margen-top-10 margen-bottom-5" placeholder="Email" aria-describedby="basic-addon2"> 
     </div> 
     <div class="input-group"> 
      <input type="password" id="password" class="input-generico margen-top-10 margen-bottom-5" placeholder="Contraseña" aria-describedby="basic-addon2">   
     </div> 
     <div class="input-group margen-bottom-20"> 
      <input type="password" class="input-generico margen-top-10 margen-bottom-5" placeholder="Repita contraseña" aria-describedby="basic-addon2"> 
     </div> 
     <a id="registroAction" class="btn boton-generico margen-left-38">Crear una cuenta gratis</a> 
     <a href="<?php echo base_url(); ?>" class="btn boton-generico">Cancelar</a> 
    </form> 

的Jquery:

<script type="text/javascript"> 
$(function() { 
    $("#registroAction").on("click", function(e){ 
     $.ajax({    
      url: '<?php echo base_url(); ?>frontend/registro/registrarAction', 
      type: 'POST', 
      dataType: 'json', 
      data: {email: $('#email').val(), password: $('#password').val()}, 
      success: function (response) {     
       if (response.ok == 'ok'){ 
        // Establecemos la clase necesario para mostrar el mensaje 
        var classname = (response.ok == 'ok') ? '.bg-success' : '.bg-danger'; 
        // Ocultamos el resto de mensajes de activacion 
        $('.mensaje_activacion').hide().html(''); 
        // Mostramos y rellenamos según si ha salido bien o mal 
        $('.mensaje_activacion' + classname).html(response.responseText).show().fadeOut(3000); 

       } else { 
        $(location).attr('href',response.url); 
       } 
      }, 
      error: function(estado){ 
       console.log(estado) 
      } 
     }); 
    }); 
}); 

+2

問題是什麼? – APAD1 2015-02-09 17:57:27

+0

它不起作用?任何錯誤消息?我們無法看透魔球並知道你想要什麼。 – 2015-02-09 18:00:19

+0

'e.preventDefault()'... – War10ck 2015-02-09 18:01:30

回答

0

首先,你的代碼,應該是一個href屬性。你可以使用href =「#」。 關於你的問題,你需要告訴瀏覽器忽略默認行爲(以下鏈接):

$("#registroAction").on("click", function(e) { 
    e.preventDefault(); 
    .... 
} 

這應該工作,防止您所看到的怪異的行爲!

-1

這是因爲相同的orgin政策或您的網址可能在服務器端重定向。請參考此How to call external url in jquery?

+0

'<?php echo base_url() ; ?> - 似乎沒有任何證據表明交叉來源... – War10ck 2015-02-09 18:04:13