2016-07-08 17 views
1

スクリプト言語:AngularJSエッジブラウザの<a>タグ内に入力タイプのテキストを入力できませんか?

私のHTMLコードは次のとおりです。

<li> 
<a href="javascript:void(0)"> 
<label ng-if="show">MyName</label> 
<i class="fa fa-pencil" ng-if="show"> 
<i class="fa fa-trash" ng-if="show"> 
<input type="text" ng-hide="show" /> 
</a> 
</li> 

IEのエッジに除くすべてのブラウザで働いて、この上記のhtml ..私は、編集アイコンをクリックすると、ために行わ

この機能リスト内のラベルは削除され、テキストボックスにはラベル値が表示されます。

そのラベル値を選択または名前を変更するもののような編集リストです。

このhtmlコードは正常に動作します(Firefoxの場合は、IE9を除くGoogle Chrome & Edgeです)。

+0

なぜ入力をアンカーの内側に配置していますか?また、ここには[タグ:angularjs]もありません。これは単なるHTMLです。使用しているAngularコードを共有することもできますか?最後に、どのバージョンのEdgeでテストしていますか?私はちょうど最近のビルドでhttps://jsfiddle.net/39zhw2uf/をテストし、両方の入力要素に入力することができました。 – Sampson

+0

アンカータグは非対話型コンテンツのみをラップすることができるため、入力はありません。それは無効なhtmlです。 http://www.w3.org/TR/html5/text-level-semantics.html#the-a-element – ste2425

答えて

0

html validatorで試してみてください。

出力は次のとおりです。

Error: The element input must not appear as a descendant of the a element.

だから、基本的に、これは有効なHTMLではありません、それは彼らがあなたのマークアップを解析する方法を厳密にブラウザに依存します。そのため、コード内でいくつかの回避策を使用して、同じ種類のマークアップを使用するのではなく同じ効果を得たい場合があります。

関連する問題