Jquery 为什么创建输入字段时输入字段不为空?
到目前为止,我总是在Stackoverflow找到一个答案,来解答我在编写Javascript/Jquery时遇到的问题,但现在我已经走到了死胡同。 简单的html和脚本,我在其中创建了一个输入字段。 这个输入字段只在我按下“s”键时才会显示,但无论我怎么做,“s”也会显示在输入字段中,这是不应该的。 只有在我明确清除了inputfield之后,该字段才是空的,但随后焦点就丢失了 这里是我使用的一个例子(当然它是一个更大的程序的一部分),你可以看到我试图让它工作。感谢您的帮助。谢谢Jquery 为什么创建输入字段时输入字段不为空?,jquery,input,keydown,Jquery,Input,Keydown,到目前为止,我总是在Stackoverflow找到一个答案,来解答我在编写Javascript/Jquery时遇到的问题,但现在我已经走到了死胡同。 简单的html和脚本,我在其中创建了一个输入字段。 这个输入字段只在我按下“s”键时才会显示,但无论我怎么做,“s”也会显示在输入字段中,这是不应该的。 只有在我明确清除了inputfield之后,该字段才是空的,但随后焦点就丢失了 这里是我使用的一个例子(当然它是一个更大的程序的一部分),你可以看到我试图让它工作。感谢您的帮助。谢谢 <!D
<!DOCTYPE html>
<html>
<head>
<title>Textbox-Test</title>
<META HTTP-EQUIV="content-type" CONTENT="text/html; charset=utf-8">
<script type="text/javascript" language="javascript" src="jquery-1.9.1.min.js"></script>
<script>
function showSearchBox() {
output = 'Please enter your search-word here: <input type="text" value="" id="searchBox"/>';
$('#inputArea').html(output);
//$('#searchBox').focus();
//$('#searchBox').html("");
//$('#searchBox').val("");
$('#searchBox').clear(); // clears the box (all the others don't), but only if .focus is after it, plus there there is no focus
//$('#searchBox').empty();
//$('#searchBox').reset();
$('#searchBox').focus();
};
function HandleKeyDown(e) {
if (e.keyCode == 83) { // s show Search-box.
showSearchBox();
}
};
$(document).ready(function () {
$(document).keydown(HandleKeyDown);
});
</script>
</head>
<body>
<h2>Please press the 's' key to open the Search-Textbox.</h2>
<div id="inputArea"></div>
</body>
</html>
文本框测试
函数showSearchBox(){
输出='请在此处输入搜索词:';
$('#inputArea').html(输出);
//$(“#搜索框”).focus();
//$(“#搜索框”).html(“”);
//$(“#搜索框”).val(“”);
$(“#searchBox”).clear();//清除该框(所有其他框都不清除),但仅当.focus在它之后,并且没有焦点时
//$(“#搜索框”).empty();
//$(“#搜索框”).reset();
$(“#搜索框”).focus();
};
功能HandleKeyDown(e){
如果(e.keyCode==83){//s显示搜索框。
showSearchBox();
}
};
$(文档).ready(函数(){
$(文档).keydown(HandleKeyDown);
});
请按“s”键打开搜索文本框。
在我的笔记本电脑macbook pro中,s键的键码是115。您认为应该在您的案例中找到它,然后将按键事件用作:
$(文档).ready(函数(){
var标志=真;
$(文档)。按键(功能(e){
如果(标志==真){
警报(例如,which)
如果(e.which=='115'{
flag=false
$('#inputArea').html('')
$('#searchbox').focus(function(){});
}
}
});
});代码>
请按“s”键打开搜索文本框。
在我的笔记本电脑macbook pro中,s键的键码是115。您认为应该在您的案例中找到它,然后将按键事件用作:
$(文档).ready(函数(){
var标志=真;
$(文档)。按键(功能(e){
如果(标志==真){
警报(例如,which)
如果(e.which=='115'{
flag=false
$('#inputArea').html('')
$('#searchbox').focus(function(){});
}
}
});
});代码>
请按“s”键打开搜索文本框。
因为您将向下键委托给文档,所以在将输入附加到div之后,也会从该输入字段接收向下键
选中event.target.id,以便如果您不在输入字段中,则只能添加搜索输入框
函数showSearchBox(){
输出='请在此处输入搜索词:';
$('#inputArea').append(output);//使用append代替html
$(“#搜索框”).focus();
};
功能HandleKeyDown(e){
//如果e.target.id是输入字段,则不执行任何操作
如果(e.keyCode==83&&e.target.id!='searchBox'){
e、 preventDefault();//不要接受s字符,因为您正在创建一个新的文本框
showSearchBox();
}
};
$(函数(){
$(文档).keydown(HandleKeyDown);
});代码>
请按“s”键打开搜索文本框。
因为您将向下键委托给文档,所以在将输入附加到div之后,也会从该输入字段接收向下键
选中event.target.id,以便如果您不在输入字段中,则只能添加搜索输入框
函数showSearchBox(){
输出='请在此处输入搜索词:';
$('#inputArea').append(output);//使用append代替html
$(“#搜索框”).focus();
};
功能HandleKeyDown(e){
//如果e.target.id是输入字段,则不执行任何操作
如果(e.keyCode==83&&e.target.id!='searchBox'){
e、 preventDefault();//不要接受s字符,因为您正在创建一个新的文本框
showSearchBox();
}
};
$(函数(){
$(文档).keydown(HandleKeyDown);
});代码>
请按“s”键打开搜索文本框。
使用keyup
事件而不是keydown
可能会有帮助谢谢你,这就完成了工作,但是因为我使用keydown作为其他几个键,所以我选择了gaemaf的解决方案(见下文)。使用keyup
事件而不是keydown
可能会有帮助谢谢你,这就完成了工作,但是因为我对其他几个键使用了keydown,所以我选择了gaemaf的解决方案(见下文)。谢谢!当我的项目准备就绪时,我确实需要一个有Mac电脑的人来确定所有的按键是否都能正常工作,因为在Windows上,按键s的按键代码肯定是83。谢谢。很乐意帮忙!:)非常感谢。当我的项目准备就绪时,我确实需要一个有Mac电脑的人来确定所有的按键是否都能正常工作,因为在Windows上,按键s的按键代码肯定是83。谢谢。很乐意帮忙!:)啊,谢谢你,你“睁开了我的眼睛”,e;这就是我实施的解决方案!再次感谢。啊,谢谢你,你“睁开了我的眼睛”,e;这就是我实施的解决方案!再次感谢。