现在的问题是您编写的代码在页面加载时立即执行。
从您的代码的外观来看,您实际上希望表单的按钮执行控制台日志。
我对您的代码进行了一些更改,但您是这样的:
- 选择表格和输入
- 声明变量超出范围
- 绑定到表单的提交事件
- 阻止它实际提交
- 并根据您的示例登录到控制台
修改后的代码如下:
<script>
$(function() {
// Save a reference to the input
var input = $("input[name=first_name]"),
// Get the form itself
form = $("form[name=info]"),
// Storage for your first_name outside of the scope
first_name = false;
// Bind to the submit event on the form
form.bind('submit', function() {
// Set the first_name to the input's value
first_name = input.val();
// Log it out (per your example)
console.log(first_name);
// Return false to prevent the form from posting
return false;
});
});
</script>
<div id="content">
<form name="info">
First Name:
<input type="text" id="first_name" name="first_name">
<input type="submit" id="button">
</form>
</div>
我并不是说这是处理您尝试对表单执行的任何操作的最佳方式,实际上您不需要按钮上的 ID,并且可能希望用 ID 替换表单上的 NAME选择器。还建议使用 ID 选择器来获取输入,因为 ID 选择器比[name=something]
选择器更快。(感谢gnarf的评论!)
在您的示例中,变量范围也可能有些奇怪,但是上面的代码应该对学习有好处:)