如何从jquery keypress事件调用js函数

时间:2013-07-04 01:53:05

标签: javascript jquery

我已定义此功能

function updateMapMarker(inputValue)
{
    geocoder.geocode({'address': inputValue}, function(results, status) 
    {
        if (status == google.maps.GeocoderStatus.OK)
        {
            if (results[0])
            {
                placeMarker(results[0].geometry.location);
            }
            else
            {
                alert('No results found');
            }
        }
        else
        {
            alert('Geocoder failed due to: ' + status);
        }
    });
}

我在这样的输入中添加了一个按键事件:

$('#tutor_singin_address').keypress(function (e)
{
    if(e.keyCode==13)
    {
        updateMapMarker( $('#tutor_singin_address').val());
    }
});

但是控制台抛出了这个错误:

Uncaught ReferenceError: updateMapMarker is not defined 

如何调用我的js函数?

1 个答案:

答案 0 :(得分:0)

最简单的方法是定义一个额外的函数作为事件处理程序:

function keyPressHandler(e) {
    if (e.keyCode == 13) {
        updateMapMarker($('#tutor_singin_address'));
    }
}

然后将新函数作为事件处理程序附加:

$('#tutor_singin_address').keypress(keyPressHandler);

我相信你的方式并不是因为JavaScript处理范围和this关键字的棘手方式,但我自己还没有确认。给我一个机会!