javascript - 无法获取输入元素的值
问题描述
我正在尝试格式化输入字段中的值,但我无法获取值
以下是 HTML:
<div class="container">
<input type="text" id="search" />
<button id="btn" onclick="search()">Search</button>
</div>
这是JS代码:
var searchValue = document.querySelector('#search').value;
function search() {
console.log(searchValue);
}
运行该代码会记录空值,但如果我从 querySelector 行中删除 .value 并将其用作
console.log(searchValue.value)
;
然后它工作
这里有什么问题!?
解决方案
这是正常的,您将变量设置在单击时调用searchValue
的函数之外。search()
在单击时调用的函数中设置变量。
如果您立即获得价值,它没有价值,那是正常的,您没有价值。
因此,如果您在点击功能之外获得价值,您将不会拥有它。您必须在拥有值的那一刻使用 .value。
function search() {
var searchValue = document.getElementById('search').value;
console.log(searchValue);
}
<div class="container">
<input type="text" id="search" />
<button id="btn" onclick="search()">Search</button>
</div>
如您所见,我们可以读取该值,因为在我要求的时候它有一个。点击后,您在上面设置了“理论上”的值。
var searchValue = document.getElementById('search').value;
console.log(searchValue);
function search() {
console.log(searchValue);
}
<div class="container">
<input type="text" id="search" value="TEST"/>
<button id="btn" onclick="search()">Search</button>
</div>
推荐阅读
- postgresql - 为什么我可以在控制器而不是命令中使用实体管理器?
- ionic-framework - 离子搜索栏有取消图标而不是取消文本 ionic 3
- javascript - 笑话:测试类型或空
- r - 如何在 r 中进行列拆分和 dcast
- ruby-on-rails - 为什么 Active Record 发送的数据与 schema.rb 不同?
- redis - Jedis Benchmarking - Jedis 有多快
- javascript - 如何在 JavaScript 中使用 Base64String 值设置 Dynamics CRM/365 字段
- javascript - 为什么我无法写入我的 firebase 数据库?
- java - 运行我的第一个 java 应用程序时出现 InvalidModuleDescriptorException
- linux - 了解系统中可用连续内存量的方法