如何确定用户或浏览器是否输入了表单上的数据?

时间:2011-07-26 19:59:40

标签: javascript jquery forms

我有一个结帐表格会显示一个弹出式调查,询问为什么他们在5秒后没有开始填写表格。但是,我需要能够检查用户是否实际输入了数据而不是浏览器的自动填充功能输入的数据(我在javascript或jQuery中明确忽略的标记中的任何预先填充的数据集)。

现在我的解决方案是让setTimeout运行一个函数,该函数检查在输入类型(input,select,textarea)上的jQuery .focus或.change事件上设置为false的变量(true或false)。但是,由于javascript可能会在用户能够使用表单元素后加载,因此我必须检查用户是否在调查弹出之前输入了数据。

如果在用户对表单字段做了任何事情后加载javascript,是否可以区分用户输入的数据和浏览器输入的数据?

3 个答案:

答案 0 :(得分:4)

如果你真的想告诉浏览器根本不自动填充它,你可以使用autocomplete属性,但遗憾的是这是一个无效的属性,因此不会验证。如果你真的需要你的HTML来验证,你可以使用jQuery为你做这件事:

$(your_form_selector).attr('autocomplete', 'off');

有关自动填充here

的更多讨论

答案 1 :(得分:1)

表单的.keyup事件怎么样?

var isFilledByUser = false;
$("#input").keyup(function(){
    var isFilledByUser = true;
});

答案 2 :(得分:0)

好吧......这很有趣,但我绝对同意......这个功能会让人讨厌XD

http://jsfiddle.net/NTvrN/1/

但是你去......现在输入,foo!