[英]Executing JavaScript on Key Press
我正在做一些非常基本的javascript工作,似乎遇到了麻烦。 对于我的生活,我似乎无法找到谷歌应该是一个非常基本的答案。
<html>
<head>
<title>Test Page</title>
<script type="text/javascript">
function lowerCase(){
var input = document.send.inputText;
input.toLowerCase();
document.write(input);
alert(input);
}
</script>
</head>
<body>
<h1>Test Page</h1>
<form name="send">
<input type='text' name="inputText" onkeypress="lowerCase()"/>
</form>
</body>
</html>
我的意图是在将信息输入文本框并按Enter键时执行函数lowerCase。 但是,我似乎永远无法执行该功能。
怎么样...
HTML:
<input type='text' name="inputText" onkeypress="lowerCase(this)">
JavaScript的:
function lowerCase ( input ) {
setTimeout( function () {
input.value = input.value.toLowerCase();
}, 0 );
}
现场演示: http : //jsfiddle.net/vXpj8/3/
function lowerCase ( e ) {
if ( e.keyCode === 13 ) {
this.value = this.value.toLowerCase();
e.preventDefault();
}
}
document.send.inputText.onkeypress = lowerCase;
现场演示: http : //jsfiddle.net/vXpj8/1/
请注意,我如何使用JavaScript绑定事件处理程序。 我这样做是因为我想在函数中使用event
对象。
onkeypress属性和等号之间有一个空格。 删除; 它应该工作。
小提琴: http : //jsfiddle.net/iambriansreed/jEnxH/
<form name="send">
<input type='text' name="inputText">
</form>
<script>
document.send.inputText.onkeypress = function(event){
if(event.keyCode != 13) return;
this.value = this.value.toLowerCase();
alert(this.value.toLowerCase());
event.preventDefault();
};
</script>
如果在按下回车键时希望它工作,那么您需要处理正在提交的表单,因为按下输入作为表单控件的文本输入元素会提交表单。
您更有可能希望将值更改为其他事件的小写,例如keup
<input onkeyup="this.value = this.value.toLowerCase();" ... >
尽管如此,做这种事情对用户来说有点烦人,因为大写字母神奇地改为小写。 如果对小写字母有后端要求,那么最好处理它,而不是混淆输入文本的用户。
你的代码的一些问题第一个var输入是一个输入框而不是字符串,toLowerCase()是一个字符串方法,你需要输入值
var input = document.send.inputText;
alert(input.value);
第二,在输入文本之前,onkeypress被执行,也许您应该考虑将onkeypress更改为onkeyup
试试这是否有帮助
<html>
<head>
<title>Test Page</title>
<script type="text/javascript">
function lowerCase(){
var input = document.send.inputText;
input.value = input.value.toLowerCase();
}
</script>
</head>
<body>
<h1>Test Page</h1>
<form name="send">
<input type='text' name="inputText" onkeyup="lowerCase()">
</form>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.