在IE中的占位符上激发jQuery输入事件
我有一个带有在IE中的占位符上激发jQuery输入事件,jquery,html,internet-explorer,input,placeholder,Jquery,Html,Internet Explorer,Input,Placeholder,我有一个带有input事件绑定的输入字段(通过jQuery)。每次输入值更改时都应触发此事件。我添加了一个占位符来告诉用户这个输入字段的用途 如果用户单击此输入字段,则不应触发input事件(该值实际上不会更改;只是占位符消失)。它在Firefox或Chrome中运行良好,但在IE中不起作用 我怎样才能避免这种行为 为了更好地理解我在上遇到的问题,一种预防问题的方法是存储字段的旧值,并在执行要在输入处理程序中执行的实际函数之前进行检查。这就是我在一个应用程序中修复它的方式 例如: $(docum
input
事件绑定的输入字段(通过jQuery)。每次输入值更改时都应触发此事件。我添加了一个占位符来告诉用户这个输入字段的用途
如果用户单击此输入字段,则不应触发input
事件(该值实际上不会更改;只是占位符消失)。它在Firefox或Chrome中运行良好,但在IE中不起作用
我怎样才能避免这种行为
为了更好地理解我在上遇到的问题,一种预防问题的方法是存储字段的旧值,并在执行要在
输入
处理程序中执行的实际函数之前进行检查。这就是我在一个应用程序中修复它的方式
例如:
$(document).ready(function () {
var $input = $("#input");
var $msg = $("#msg");
var old_value = $input.val();
$input.on("input", function () {
var new_value = $input.val();
if (new_value !== old_value) {
// The actual work we want to perform when the field *really* changes.
$msg.text(new_value.length);
old_value = new_value;
}
});
});
这会阻止在字段未更改时执行操作。尝试将其添加到输入事件:
if($(this).val() == $(this).get(0).defaultValue) return;
在哪个版本的IE中会发生这种情况?@OLRAC在运行Windows 8的IE10中这么说你的问题是占位符-我认为这个链接会帮助你。这是IE10/11的一个错误:如何防止输入事件阻止其他事件?我有一个点击竞价的链接,该链接被此输入事件停止:(用户抱怨他们必须在IE中单击两次,而在其他浏览器中它工作正常。@我从未遇到过忽略单击的问题。答案中的代码所做的只是监听
输入事件,这对单击事件的处理方式没有影响。听起来你可能有关于n的材料ew问题。@Louis yepp,我将创建一个问题