为什么我输入的值显示为空白?

时间:2014-06-02 09:44:32

标签: jquery input

我正在编写一个脚本,可以在输入时找到文本输入的值。无论出于何种原因,在控制台中,值为空。

$('[rel^="liveSearch"]').ready(function(){

        var fieldName = $(this).attr("name");

        $(this).on('keydown', function(){                   

            console.log('A key was pressed... the value is '+$(this).val());

            if($(this).length > 3){

                $.ajax({
                    url: $(this).attr("rel") + $(this).val(),
                    dataType: "xml",
                    statusCode: {
                        404: function(){alert("404 not found!")}
                    }
                })
                .done(function(xml){
                    $(xml).find('member').each(function(){
                        var memberId = $(this).attr("id");
                        var memberName = $(this).find('content').text();
                        suggestionMenu.append('<li onclick="appendValue(\''+fieldName+'\', \''+memberId+'\');hideMenu(\''+suggestionMenu+'\');">'+memberName+'</li>');
                        suggestionMenu.show();
                    });
                });                 

            }

        });
    });

消息记录在控制台中,因此我知道on keydown函数被调用。所有的控制台节目都是“一键被按下......价值是......”任何想法?

2 个答案:

答案 0 :(得分:2)

我不确定你为什么要使用$('[rel^="liveSearch"]').ready(

如果动态生成input,请像这样使用,

$(document).on('keydown', '[rel^="liveSearch"]', function () {
    var fieldName = $(this).attr("name");
    console.log('A key was pressed... the value is ' + $(this).val());
    if ($(this).val().length > 3) {
        $.ajax({
            url: $(this).attr("rel") + $(this).val(),
            dataType: "xml",
            statusCode: {
                404: function () {
                    alert("404 not found!")
                }
            }
        })
            .done(function (xml) {
                $(xml).find('member').each(function () {
                    var memberId = $(this).attr("id");
                    var memberName = $(this).find('content').text();
                    suggestionMenu.append('<li onclick="appendValue(\'' + fieldName + '\', \'' + memberId + '\');hideMenu(\'' + suggestionMenu + '\');">' + memberName + '</li>');
                    suggestionMenu.show();
                });
            });

    }

});

它会正常工作。

Fiddle

答案 1 :(得分:0)

或使用String.fromCharCode()获取点击按钮的名称

FIDDLE EXAMPLE