Удалить IE10 "очистить поле" кнопку X на определенных входах?

Это, конечно, полезная функция, но есть ли способ ее отключить? Например, если форма представляет собой одно текстовое поле и уже имеет "четкую" кнопку рядом с ней, то избыточно также иметь X. В этой ситуации было бы лучше удалить ее.

Можно ли это сделать, и если да, то как?

Ответ 2

Мне было лучше установить width и height на 0px. В противном случае IE10 игнорирует заполнение, определенное в поле - padding-right - которое предназначено для того, чтобы текст не печатался над символом "X", который я наложил на поле ввода. Я предполагаю, что IE10 внутренне применяет padding-right ввода к псевдоэлементу ::--ms-clear, и скрытие псевдоэлемента не восстанавливает значение padding-right в input.

Это помогло мне лучше:

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

Ответ 3

Я применил бы это правило ко всем полям ввода текста типа, поэтому его не нужно дублировать позже:

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

Как указано David Cumps, можно даже получить менее конкретную информацию, используя только:

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

Я использовал позже даже до добавления этого ответа, но думал, что большинство людей предпочитают быть более конкретными, чем это. Оба решения работают нормально.

Ответ 5

Я думаю, стоит отметить, что все решения на основе стиля и CSS не работают, когда страница работает в режиме совместимости. Средство рендеринга режима совместимости игнорирует элемент:: - ms-clear, хотя браузер показывает x.

Если ваша страница должна работать в режиме совместимости, вы можете застрять в отображении X.

В моем случае я работаю с некоторыми контрольными данными, связанными с третьей стороной, и нашим решением было обработать событие "onchange" и очистить хранилище резервных копий, если поле очищено с помощью кнопки x.