Xóa nút xóa trường X của IE10 trên một số đầu vào nhất định?


742

Đó là một tính năng hữu ích, để chắc chắn, nhưng có cách nào để vô hiệu hóa nó?
Ví dụ: nếu biểu mẫu là một trường văn bản duy nhất và đã có nút "xóa" bên cạnh, thì cũng không cần thiết phải có X. Trong tình huống này, tốt hơn là xóa nó.

Nó có thể được thực hiện, và nếu vậy, làm thế nào?


1
Điều này cũng hữu ích trên một trường có giá trị mặc định trong đó khoảng trống không có nghĩa, ví dụ như số lượng.
Joe Flynn

4
vì điều này không kích hoạt một kiểu nhập liệu, điều này rất khó khăn khi bạn liên kết sự kiện javascript.
Kiwy

Câu trả lời:


1267

Kiểu ::-ms-clearphần tử giả cho hộp:

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

14
Thật buồn cười nếu bạn sử dụng chế độ tương thích IE để hiển thị trang của bạn với các công cụ trước IE10, phần tử giả này không hoạt động và dù sao nó cũng hiển thị nút.
Yousef Salimpour

@Yousef: Vâng, đó là cách nó hoạt động và là một phần lý do tại sao bạn không bao giờ nên sử dụng Chế độ tương thích trong một trang web thực tế. Nó không thực sự tương thích :)
Ry-

@minitech - IE9 của nó trên máy Windows 7
ManJan

3
CHỈ điều khiển này xuất hiện trong IE10 + trên Win8. Thủ thuật là nó vẫn xuất hiện khi tài liệu được đặt ở chế độ tương thích.
EricLaw

48
@EricLaw: Chà, KHÔNG CHỈ trên Win8. Tôi đang sử dụng Windows 7 ngay bây giờ và tôi có thể thấy các nút X đó trong IE10 của mình. Vì vậy, bạn có thể nói đó là tính năng chỉ dành cho IE10 + (tuy nhiên không chắc chắn về IE9), nhưng chắc chắn KHÔNG chỉ Win8, vì tính năng này xuất hiện trong phiên bản Win10 của IE10. Dù sao, cảm ơn vì tiền boa, @minitech!
OMA

272

Tôi tìm thấy nó tốt hơn để thiết lập widthheightđể 0px. Mặt khác, IE10 bỏ qua phần đệm được xác định trên trường - padding-right- được dùng để giữ cho văn bản không gõ vào biểu tượng 'X' mà tôi phủ lên trên trường nhập. Tôi đoán rằng IE10 đang áp dụng nội bộ padding-rightđầu vào cho ::--ms-clearphần tử giả và việc ẩn phần tử giả không khôi phục padding-rightgiá trị cho input.

Điều này làm việc tốt hơn cho tôi:

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

3
Dưới đây là một jsFiddle minh họa cách giải quyết này: jsfiddle.net/zoldello/S5YRj
Phil

106

Tôi sẽ áp dụng quy tắc này cho tất cả các trường nhập văn bản loại, vì vậy nó không cần phải được sao chép sau:

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

Một thậm chí có thể nhận được ít cụ thể hơn bằng cách sử dụng chỉ:

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

Tôi đã sử dụng sau này ngay cả trước khi thêm câu trả lời này, nhưng nghĩ rằng hầu hết mọi người sẽ thích cụ thể hơn thế. Cả hai giải pháp đều hoạt động tốt.


Cảm ơn, nó đã làm việc cho tôi.
Sooraj Jose

76

Bạn nên tạo kiểu cho ::-ms-clear( http://msdn.microsoft.com/en-us/l Library / windows / apps / hh465740.aspx ):

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

Và bạn cũng định kiểu cho ::-ms-revealphần tử giả cho trường mật khẩu:

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

6
Lưu ý - suy nghĩ về việc bạn có thể làm cho ::-ms-revealphần tử hoạt động trước khi loại bỏ nó không! (Hoặc nếu bạn đang cung cấp nút này cho mọi người, như người hỏi ban đầu.) Một số người thực sự sử dụng nó.
Ry-

3
@minitech - Nghe hay đấy. Bạn có thể cho chúng tôi biết làm thế nào để nó hoạt động với ràng buộc Javascript trên các sự kiện đầu vào không? Nó không gây ra sự kiện nên hầu như không thể làm việc với.
DarrellNorton

11

Tôi nghĩ rằng đáng chú ý là tất cả các giải pháp dựa trên kiểu và CSS không hoạt động khi một trang đang chạy ở chế độ tương thích. Trình kết xuất chế độ tương thích bỏ qua phần tử :: - ms-Clear, mặc dù trình duyệt hiển thị x.

Nếu trang của bạn cần chạy ở chế độ tương thích, bạn có thể bị kẹt với hiển thị X.

Trong trường hợp của tôi, tôi đang làm việc với một số điều khiển ràng buộc dữ liệu của bên thứ ba và giải pháp của chúng tôi là xử lý sự kiện "trao đổi" và xóa cửa hàng sao lưu nếu trường bị xóa bằng nút x.


0

Để ẩn mũi tên và chéo trong đầu vào "thời gian":

#inputId::-webkit-outer-spin-button,
#inputId::-webkit-inner-spin-button,
#inputId::-webkit-clear-button{
    -webkit-appearance: none;
    margin: 0;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.