HTML5 占位符属性在 Textarea 上通过 IE10 中的 jQuery



我想知道Internet Explorer 10中的一些奇怪行为。在我的页面上,我正在使用jquery添加一个文本区域,包括一个占位符属性。像这样:

$('body').append($('<textarea placeholder="Placeholder..."></textarea>'));

占位符属性通常在 IE10 中工作得很好......除非在这种情况下。我用这个小提琴页面上已经存在的元素对其进行了测试:

http://jsfiddle.net/Aqnt5/1/

如您所见,一个文本区域(动态添加的文本区域)将占位符属性视为实际值 - 我能想象到的最烦人的行为......

有谁知道这种效果,也许还有一种解决方法?提前感谢!

编辑

我也刚刚意识到,在您手动删除值后,它按预期工作。您也可以通过jQuery.val('')将其删除以使其正常工作。我真的对这种行为感到困惑...但这应该是一个合适的"解决方法"。看到这个小提琴:http://jsfiddle.net/Aqnt5/5/

不幸的是,我没有 IE10 来测试它,但这在其他任何地方都有效;

$('body').append('<textarea></textarea>');
$('textarea').attr('placeholder', 'placeholder');

只需仔细检查您的 DOCTYPE 是否适用于 HTML5

这是一个单行(在这里分成几行以使其更明显)你也可以这样做 -

$('body')
    .append('<textarea></textarea>')
    .find('textarea')
    .attr('placeholder', 'placeholder');

小提琴:http://jsfiddle.net/Aqnt5/5/

您可以使用 jQuery 删除该值,以使其正常运行:

$('body').append($('<textarea placeholder="Placeholder..."></textarea>').val(''));

我不知道为什么他们首先将占位符作为值......

我在使用 jQuery 1.8.3 : http://jsfiddle.net/wE577/1/时看到同样的事情发生。

但是,如果您使用高于此版本的版本,则问题就会消失:http://jsfiddle.net/wE577/2/。

我不知道jQuery以什么方式导致此错误,但是更新修复了它。

placeholder是HTML5的保留属性,由于 HTML5 尚未定义(并且可能会对其进行更改),那么并非所有浏览器都支持所有功能(不要让我开始讨论IE)

供参考:http://www.w3schools.com/html5/att_textarea_placeholder.asp

相关内容

  • 没有找到相关文章

最新更新