“未捕获的ReferenceError:e未定义”我相信我已经定义了e

时间:2014-12-06 09:39:03

标签: ajax referenceerror

我在控制台中收到一条错误消息" Uncaught ReferenceError:e未定义"我点击的按钮名称为" sendtxt"。我确定它有功能(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);
            }
        });
    };

1 个答案:

答案 0 :(得分: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是一个函数。无需将其包装在另一个函数中。