Javascript 如何通过jQuery获取文本元素的当前值

Javascript 如何通过jQuery获取文本元素的当前值,javascript,jquery,forms,Javascript,Jquery,Forms,我有一个文本输入元素,当用户按下enter键时,模糊事件会触发一个事件 我的问题是,如果用户输入“foo”并按enter键,则在模糊事件val()返回foo后,函数仍然返回null。据我所知,这是因为HTML输入元素的value属性只有在失去焦点时才会更新。你能给我一份工作吗 以下是我使用的确切代码: var meetmove_address_field_listener = function(e){ var type = $(this).attr('data-marker-type')

我有一个文本输入元素,当用户按下enter键时,模糊事件会触发一个事件

我的问题是,如果用户输入“foo”并按enter键,则在模糊事件
val()
返回foo后,函数仍然返回null。据我所知,这是因为HTML输入元素的value属性只有在失去焦点时才会更新。你能给我一份工作吗

以下是我使用的确切代码:

var meetmove_address_field_listener = function(e){
    var type = $(this).attr('data-marker-type');;
    var value = $(this).val();
    meetmove_map.geocodeAddress(type, value);
};

$(document).ready(function(){
    $('input[data-type="name"]').blur(meetmove_address_field_listener);
    $('input[data-type="name"]').keypress(function(event){
        if (event.which == 13){
            event.preventDefault();
            meetmove_address_field_listener(event);
            return false; 
        }
    });
});

可以直接访问该值,您只需要使用正确的处理程序
.keypress()
将在输入中显示字符之前触发。尝试使用而不是
.keypress()
,它应该可以工作。

可以直接访问该值,您只需要使用正确的处理程序
.keypress()
将在输入中显示字符之前触发。尝试代替
.keypress()
,它应该会起作用。

好的,Sudahir的回答解决了我的问题——我误用了$(这个)引用,它会根据上下文改变含义。Bu he删除了他的答案,因此以下是工作代码:

$(document).ready(function(){
    $('input[data-type="name"]').blur(meetmove_address_field_listener);
    $('input[data-type="name"]').keyup(function(event){
        if (event.which == 13){
            event.preventDefault();
            var type = $(this).attr('data-marker-type');
            var value = $(this).val();
            meetmove_map.geocodeAddress(type, value);
            return false;
        }
    });
});

Sudahir的回答解决了我的问题——我误用了$(这个)引用,它会根据上下文改变意思。Bu he删除了他的答案,因此以下是工作代码:

$(document).ready(function(){
    $('input[data-type="name"]').blur(meetmove_address_field_listener);
    $('input[data-type="name"]').keyup(function(event){
        if (event.which == 13){
            event.preventDefault();
            var type = $(this).attr('data-marker-type');
            var value = $(this).val();
            meetmove_map.geocodeAddress(type, value);
            return false;
        }
    });
});

为什么你不使用<代码>数据(“标记类型”)<代码>访问数据属性?我只是不知道它:你可能还想考虑使用一个类选择器来选择你的输入字段-它可能比使用属性选择器快得多。至少在现代浏览器中,有<代码> GETELENTMENS BYTRONAMEMENTY()/代码> ETCANE,为什么你不使用<代码>?数据(“MARCLETYPE”)< /COD>访问数据属性?我只是不知道它:你可能还想考虑使用类选择器来选择输入字段-它可能比使用属性选择器快得多。至少在具有
getElementsByCassName()
etcIt的现代浏览器中,这并不重要,因为我只在用户按enter键时触发事件。这并不重要,因为我只在用户按enter键时触发事件。