2014-12-06 1 views
0

Я получаю сообщение об ошибке в консоли, говорящей «Uncaught ReferenceError: e не определен» Кнопка, которую я нажимаю, имеет имя «sendtxt». Я сделал, что он имеет функцию (е) на нем«Неподготовлено ReferenceError: e не определено» Я считаю, что я определил e

<script type="text/javascript"> 
    $(document).ready(function() { 


     $('input[name="sendtxt"]').click(function(e) { 
      sendText(); 
     }); 

    }); 
    /************ FUNCTIONS ******************/ 

    function sendText() { 
     e.preventDefault(); 
     var phonenum = $('input[name="phonenum"]').val(); 
     var provider = $('select[name="provider"]').val(); 
     $.ajax({ 
      type: 'POST', 
      data: { 
       provider: provider, 
       phonenum: phonenum 
      }, 
      url: 'send.php', 
      success: function(data) { 
       console.log('Success'); 

      }, 
      error: function(xhr, err) { 
       console.log("readyState: " + xhr.readyState + "\nstatus: " + xhr.status); 
       console.log("responseText: " + xhr.responseText); 
      } 
     }); 
    }; 

ответ

0

Вы не передавая e.

$(document).ready(function() { 
    $('input[name="sendtxt"]').click(function(e) { 
     sendText(e); // <<< 
    }); 
}); 
/************ FUNCTIONS ******************/ 

function sendText(e) { // <<< 
    e.preventDefault(); 
} 

Но на самом деле, это легче записать как:

$(function() { 
    $('input[name="sendtxt"]').click(sendText); 
}); 
/************ FUNCTIONS ******************/ 

function sendText(e) { 
    e.preventDefault(); 
} 

обработчики событий JQuery ожидают функции и sendText функция. Не нужно обертывать его в еще функция.

+0

Я идиот. Большое вам спасибо – DanMossa

+0

Случается для всех нас. ;) – Tomalak

+0

Некоторые борцы все еще нуждаются в возврате false. используйте два из них, по крайней мере, в конце кода события. – littlealien

Смежные вопросы