【发布时间】:2016-03-10 00:19:40
【问题描述】:
因此,由于某些浏览器会自动填写登录表单,这会导致我的交互式占位符出现问题。占位符是一个<span> 元素,其中包含一些文本,当聚焦时它会移动到输入本身的上方。在浏览器插入它“记住”的数据后,我如何能够检测到它的存在以及它的价值?
请注意,这是我希望抓取的输入的自动完成值。
【问题讨论】:
标签: javascript jquery html google-chrome autofill
因此,由于某些浏览器会自动填写登录表单,这会导致我的交互式占位符出现问题。占位符是一个<span> 元素,其中包含一些文本,当聚焦时它会移动到输入本身的上方。在浏览器插入它“记住”的数据后,我如何能够检测到它的存在以及它的价值?
请注意,这是我希望抓取的输入的自动完成值。
【问题讨论】:
标签: javascript jquery html google-chrome autofill
使用下面的代码,我已经成功实现了我想要的结果:
setTimeout(function() {
console.log($('#input').val());
});
使用超时允许浏览器在代码向其请求数据之前加载自身。
【讨论】:
$('body').click(); 使值“真实”,否则你会收到一个空字符串。由于这对于密码字段不起作用,因此我使用autocomplete="new-password" 作为密码字段,因此用户必须填写新密码。
给 span 一个 ID 并在其上运行 text() 方法。在没有任何参数的情况下,它作为一个 getter 工作。
var yourtext = $('#somespan').text();
如果它是一个实际的文本字段而不是一个跨度,您将使用 .val() 方法获取内容。
var yourtext = $( "#foo" ).val();
【讨论】:
<input> 元素没有 .text() 响应,因为它是值。如前所述,使用.val() 方法不会返回任何内容,这是由于浏览器将值插入到字段中。