特定の入力でIE10の「フィールドをクリア」Xボタンを削除しますか?


742

確かに便利な機能ですが、無効にする方法はありますか?
たとえば、フォームが単一のテキストフィールドで、その横に「クリア」ボタンがすでにある場合、Xも不要です。この状況では、フォームを削除することをお勧めします。

それはできますか?


1
これは、空白など意味がないデフォルト値を持つフィールド(数量など)でも役立ちます。
ジョーフリン2013年

4
これは入力タイピングをトリガーしないため、javascriptイベントをバインドする場合は非常に注意が必要です。
Kiwy、2014年

回答:


1267

ボックスの::-ms-clear疑似要素をスタイルします。

.someinput::-ms-clear {
    display: none;
}

14
IE互換モードを使用してIE10より前のエンジンでページをレンダリングするとおかしいのですが、この疑似要素は機能せず、ボタンが表示されます。
Yousef Salimpour 2013

@Yousef:はい、そのように機能し、実際のWebサイトで互換モードを使用してはならない理由の一部です。実際には互換性がありません:)
Ry-

@minitech-Windows 7マシン上のIE9
ManJan 2013

3
このコントロールは、Win8のIE10 +でのみ表示されます。秘訣は、ドキュメントを互換モードにしても表示されることです。
EricLaw 2013

48
@EricLaw:まあ、Win8だけではありません。現在Windows 7を使用していますが、IE10でこれらのXボタンを確認できます。つまり、これはIE10 +のみの機能(ただしIE9については不明)であると言えるかもしれませんが、これはWin8バージョンだけではなく、Win7バージョンのIE10にあるためです。とにかく、ヒントをありがとう、@ minitech!
OMA 2013

272

私はそれを設定すると良いでしょう見つかったwidthheightします0px。それ以外の場合、IE10はフィールドに定義されたパディングを無視しますpadding-right-これは、入力フィールドにオーバーレイした「X」アイコンの上にテキストが入力されないようにするためのものでした。IE10が内部的padding-rightに入力のを::--ms-clear疑似要素に適用していると思います。疑似要素を非padding-right表示にしても値はに戻りませんinput

これは私にとってよりうまくいきました:

.someinput::-ms-clear {
  width : 0;
  height: 0;
}

3
これは、この回避策を示すjsFiddleです:jsfiddle.net/zoldello/S5YRj
Phil

106

このルールをテキストタイプのすべての入力フィールドに適用するので、後で複製する必要はありません。

input[type=text]::-ms-clear { display: none; }

以下を使用するだけで、特定性を低くすることもできます。

::-ms-clear { display: none; }

私はこの答えを追加する前でも後者を使用しましたが、ほとんどの人はそれよりも具体的にすることを好むと思いました。どちらのソリューションも正常に機能します。


おかげで、うまくいきました。
Sooraj Jose

76

::-ms-clearhttp://msdn.microsoft.com/en-us/library/windows/apps/hh465740.aspx)のスタイルを設定する必要があります。

::-ms-clear {
   display: none;
}

また::-ms-reveal、パスワードフィールドの疑似要素のスタイルも設定します。

::-ms-reveal {
   display: none;
}

6
注– ::-ms-reveal要素を削除する前に、要素を機能させることができるかどうかを検討してください。(または、元の質問者のように、このボタンをすべての人に提供する場合。)実際に使用する人もいます。
Ry-

3
@minitech-いいですね。入力イベントでJavaScriptバインディングを使用する方法を教えてください。イベントを発生させないため、操作することはほとんど不可能です。
DarrellNorton 2015

11

ページが互換モードで実行されている場合、すべてのスタイルおよびCSSベースのソリューションが機能しないことに注意してください。互換モードレンダラーは、ブラウザーにxが表示されていても、::-ms-clear要素を無視します。

ページを互換モードで実行する必要がある場合、Xが表示されたままになることがあります。

私の場合、私はいくつかのサードパーティのデータバインドされたコントロールを使用しています。私たちのソリューションは、「onchange」イベントを処理し、フィールドがxボタンでクリアされた場合にバッキングストアをクリアすることでした。


0

矢印を非表示にして「時間」入力を交差させるには:

#inputId::-webkit-outer-spin-button,
#inputId::-webkit-inner-spin-button,
#inputId::-webkit-clear-button{
    -webkit-appearance: none;
    margin: 0;
}
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.