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

How do I get curent value of text element via jQuery

本文关键字:元素 取文本 何通过 jQuery 获取      更新时间:2023-09-26

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

我的问题是,如果用户输入"foo"并按下回车val(),那么在模糊事件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()将在字符显示在输入中之前触发。尝试.keyup()而不是.keypress(),它应该可以工作。

实际上,Sudahir的回答解决了我的问题——我滥用了$(这个)引用,它会根据上下文改变含义。但是他删除了他的答案,所以这里是工作代码:

$(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;
        }
    });
});