9

Internet Explorer 10での奇妙な動作について疑問に思っていました。私のページで、プレースホルダー属性を含むjqueryを使用してテキストエリアを追加しています。このようなもの:

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

プレースホルダー属性は、通常、IE10で完全に正常に機能します...この場合を除きます。私はこのフィドルのページにすでにある要素でそれをテストしました:

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

ご覧のとおり、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 に答える
-1

placeholderは HTML5 の予約済み属性です。HTML5 はまだ定義されていないため (変更が発生する可能性があります)、すべてのブラウザーがすべての機能をサポートしているわけではありません (IE については説明しません)。

参照用: http://www.w3schools.com/html5/att_textarea_placeholder.asp

于 2012-12-07T14:08:52.140 に答える