我正在编写一个脚本,可以在输入时找到文本输入的值。无论出于何种原因,在控制台中,值为空。
$('[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函数被调用。所有的控制台节目都是“一键被按下......价值是......”任何想法?
答案 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();
});
});
}
});
它会正常工作。
答案 1 :(得分:0)
或使用String.fromCharCode()
获取点击按钮的名称