9

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

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

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

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

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

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

编辑

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

4

4 回答 4

15

不幸的是,我没有 IE10 来测试它,但这适用于其他任何地方;

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

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

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

$('body')
    .append('<textarea></textarea>')
    .find('textarea')
    .attr('placeholder', 'placeholder');
于 2012-12-07T14:19:17.017 回答
3

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

您可以使用 jQuery 删除该值,以使其行为正确:

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

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

于 2012-12-07T14:19:47.760 回答
0

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

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

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

于 2014-04-29T21:36:34.803 回答
-1

placeholder是 HTML5 的保留属性,因为 HTML5 还没有定义(并且可能会发生变化),那么并非所有浏览器都支持所有功能(并且不要让我从 IE 开始)

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

于 2012-12-07T14:08:52.140 回答