0

http://jsfiddle.net/udit_sharma/GFknc/

我创造了这个小提琴。它有一个输入框,它有提示文本。当我专注于这个输入框时,它的提示文本正在被正确清除。当我专注于这个输入框提示时,如果用户没有输入任何内容,则会再次显示文本。

但是有一个问题。假设您现在专注于输入框并单击浏览器中的另一个选项卡,如果您再次回到这个小提琴,请注意提示文本在离开此页面时显示为空。并且在单击输入框时也不会清除它。?

所以我发现的问题是当我点击另一个选项卡时,onblur 没有被调用,因此变量“valueChanged”没有被设置为假。因此,在再次聚焦时,它不会清除默认的提示文本值。

所以我不明白为什么没有调用 onBlur。如果有人对此有所了解,请告知或有其他方法可以执行此功能吗?

4

2 回答 2

0

看起来 Chrome 正在为文本框触发两次 onblur。我能够通过将 blur 事件设为命名函数并在 focus 期间绑定 blur 来解决此问题addOptionInputEle.off('blur').on('blur', onAddOptionBlur);。然后,在 onAddOptionBlur 中,我创建了一个循环来取消绑定模糊处理程序的所有实例。

while(addOptionInputEle.data('events').blur)
{
    addOptionInputEle.off('blur');
}

注意:未在 chrome 以外的任何地方进行测试。

于 2012-04-09T13:30:31.363 回答
0

你可以试试这个:

<input type="text" name="placeHolder" placeholder="hy i'm a place holder" />

它是一个 html5 属性,因此,您可以在<!DOCTYPE html>html 文件的顶部添加 。

于 2012-04-09T13:06:33.637 回答