Remove IE10's “clear field” X button on certain inputs?

前端 未结 6 2268
故里飘歌
故里飘歌 2020-11-22 15:51

It\'s a useful feature, to be sure, but is there any way to disable it?
For instance, if the form is a single text field and already has a \"clear\" button beside it, it

相关标签:
6条回答
  • 2020-11-22 16:07

    You should style for ::-ms-clear (http://msdn.microsoft.com/en-us/library/windows/apps/hh465740.aspx):

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

    And you also style for ::-ms-reveal pseudo-element for password field:

    ::-ms-reveal {
       display: none;
    }
    
    0 讨论(0)
  • 2020-11-22 16:10

    I would apply this rule to all input fields of type text, so it doesn't need to be duplicated later:

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

    One can even get less specific by using just:

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

    I have used the later even before adding this answer, but thought that most people would prefer to be more specific than that. Both solutions work fine.

    0 讨论(0)
  • 2020-11-22 16:21

    I found it's better to set the width and height to 0px. Otherwise, IE10 ignores the padding defined on the field -- padding-right -- which was intended to keep the text from typing over the 'X' icon that I overlayed on the input field. I'm guessing that IE10 is internally applying the padding-right of the input to the ::--ms-clear pseudo element, and hiding the pseudo element does not restore the padding-right value to the input.

    This worked better for me:

    .someinput::-ms-clear {
      width : 0;
      height: 0;
    }
    
    0 讨论(0)
  • 2020-11-22 16:22

    I think it's worth noting that all the style and CSS based solutions don't work when a page is running in compatibility mode. The compatibility mode renderer ignores the ::-ms-clear element, even though the browser shows the x.

    If your page needs to run in compatibility mode, you may be stuck with the X showing.

    In my case, I am working with some third party data bound controls, and our solution was to handle the "onchange" event and clear the backing store if the field is cleared with the x button.

    0 讨论(0)
  • 2020-11-22 16:24

    To hide arrows and cross in a "time" input :

    #inputId::-webkit-outer-spin-button,
    #inputId::-webkit-inner-spin-button,
    #inputId::-webkit-clear-button{
        -webkit-appearance: none;
        margin: 0;
    }
    
    0 讨论(0)
  • 2020-11-22 16:30

    Style the ::-ms-clear pseudo-element for the box:

    .someinput::-ms-clear {
        display: none;
    }
    
    0 讨论(0)
提交回复
热议问题