Javascript 单击或按enter键访问输入值
我试图简单地返回输入字段中输入的值 我想使用jQuery访问值,存储到变量,然后从调用的函数返回它 这是我的HTML:Javascript 单击或按enter键访问输入值,javascript,jquery,html,Javascript,Jquery,Html,我试图简单地返回输入字段中输入的值 我想使用jQuery访问值,存储到变量,然后从调用的函数返回它 这是我的HTML: <!DOCTYPE html> <html> <head> <title>Untitled</title> <link rel="stylesheet" type="text/css" href="stylesheet.css"/> <script language = "
<!DOCTYPE html>
<html>
<head>
<title>Untitled</title>
<link rel="stylesheet" type="text/css" href="stylesheet.css"/>
<script language = "javascript" type = "text/javascript" src="jquery-2.1.1.js"> </script>
<script language = "javascript" type = "text/javascript" src = "Database.js"></script>
</head>
<body>
<div id="wrapper">
<input type ="text" id="input"/></br>
<input type="button" id="insert"/>
</div>
</body>
</html>
我还没有对包含的按钮的功能进行操作,请忽略这一点
当我在Chrome的Javascript控制台中运行此命令时,我得到了“第15行的意外令牌函数。我是否错误地调用了该函数?”
我只希望程序在用户按下enter键后立即返回输入框的值
更新
HTML:
Javascript:
$(document).ready(function() {
var toSubmit = function() {
var text = $("#input").val();
return text;
};
var enterPressed = function() {
$('#input').keyup(function(button) {
if(button.keyCode==13) {
toSubmit();
}
};
function enterPressed();
});
$(document).ready(function() {
var values = [];
var toSubmit = function() {
var text = $("#input").val();
values.push(text);
console.log(values);
return false;
};
var formSubmit = function(e) {
$('#form').submit(toSubmit);
};
});
正如@DontVoteMeDown在评论中所说,
函数enterPressed();
是一个语法错误,您忘记关闭enterPressed
。您还忘了用}关闭键。
。我已更正了此代码中的错误:
编辑:更改为event.which
而不是event.keyCode
()
工作JSFIDLE示例:
更新:
$(document).ready(function() {
var toSubmit = function(e) {
var text = $("#input").val();
// do whatever you want to do with 'text' variable here
// stop form from submitting
e.preventDefault();
return false;
};
var formSubmit = function() {
$('#form').submit(toSubmit);
};
// call this when you want to bind the submit handler
formSubmit();
});
<form id="form">
<input type ="text" id="input"/><br />
<input type="submit" id="insert"/>
</form>
如果可以,最好只收听表单的submit
事件。这样,您可以调用toSubmit
,它将处理enter键和submit按钮。以下是您的操作方法:
JavaScript:
$(document).ready(function() {
var toSubmit = function(e) {
var text = $("#input").val();
// do whatever you want to do with 'text' variable here
// stop form from submitting
e.preventDefault();
return false;
};
var formSubmit = function() {
$('#form').submit(toSubmit);
};
// call this when you want to bind the submit handler
formSubmit();
});
<form id="form">
<input type ="text" id="input"/><br />
<input type="submit" id="insert"/>
</form>
HTML:
$(document).ready(function() {
var toSubmit = function(e) {
var text = $("#input").val();
// do whatever you want to do with 'text' variable here
// stop form from submitting
e.preventDefault();
return false;
};
var formSubmit = function() {
$('#form').submit(toSubmit);
};
// call this when you want to bind the submit handler
formSubmit();
});
<form id="form">
<input type ="text" id="input"/><br />
<input type="submit" id="insert"/>
</form>
在toSubmit
功能中:
// push text to array
list.push(text);
// output array in console
console.log(list);
JSFIDLE:(每次按下enter键时打开控制台查看数组)首先,将此函数enterPressed();
更改为此enterPressed()
。这是错误的根源。用}
关闭enterPressed
函数,它丢失了。@DontVoteMeDown--将其作为答案发布。@tymeJV我不确定这是否是真正的答案。@Nathan我已将我的代码与您的代码相同,并且没有收到任何错误,但是值
没有打印到控制台上。我是cal吗也许在我的HTML中过早使用Javascript源代码?我看到您的JSFIDLE示例工作了…请参阅上面我更新的代码。我只是想知道,如果只调用一次,并且在声明后立即调用,为什么你们坚持创建一个函数来绑定事件。@matt81m Withdocument.ready
您可以将它放在页面(在DOM就绪之前不会调用它)。在保存编辑后,我将其更改为list
,因为我在您的评论中注意到,您说有一个名为list
的数组。全局数组是否在toSubmit
之外创建?您是否试图在文档之外使用list
?准备好了吗列表
数组只能在文档中使用。准备就绪
除非它在它之外声明。@DontVoteMeDown我并不真正关心将它保存在函数中(我个人也不会将它放在它自己的函数中,但我想matt81m希望它是这样的,以便以后可以在脚本中绑定)。@Nathan我忘记调用formSubmit()
在末尾。它现在似乎正在工作。您能解释一下为什么在函数的末尾需要返回false;
来提交?