2013-04-06 31 views
10

Trong Internet Explorer, có một nút x nhỏ giống như được hiển thị, khi bạn bắt đầu nhập vào hộp văn bản. Làm cách nào để phát hiện sự kiện khi biểu tượng này được nhấp vào? Có loại sự kiện nào không?Phát hiện sự kiện xóa texbox trong IE. Làm cách nào để xóa loại đầu vào = "văn bản" (hộp văn bản) trong IE (Internet Explorer) khi nhấp vào ô rõ ràng của IE?

<input type="text" value ="" id ="qsearch" name="qsearch" 
    onBlur="qsearchLookup(this.value);" OnClick="qsearchLookup(this.value);" 
    onkeyup="qsearchLookup(this.value)" size="26"> 

function qsearchLookup(searchVal){ 
    document.getElementById("qsearch").value=""; 
} 

enter image description here

+0

tôi tìm thấy giải pháp này thực sự hữu ích: http://stackoverflow.com/a/14498921/1895428 – pmrotule

+0

gửi nó như là câu trả lời – Andrew

Trả lời

7

Tôi không biết về sự kiện đặc biệt dành cho nút này nhỏ x-như thế nào, và tôi không nghĩ rằng nó tồn tại, nhưng bạn có thể sử dụng input sự kiện (oninput="qsearchLookup(this.value)" trong trường hợp của bạn) để bắt sự thay đổi này.

+0

tôi thêm hình ảnh; có vẻ như sự kiện không bắt được nó – Andrew

+3

Nó hoạt động trong IE10, và tôi nghĩ rằng nút (x) này chỉ tồn tại trong IE10. Tôi không nghĩ rằng IE có phần tử DOM đặc biệt cho nút hoặc sự kiện này, nhưng nếu bạn muốn bạn có thể ẩn nó bằng css đặc biệt: ':: - ms-clear {display: none; } ' – outcoldman

-1
input.on('input propertychange',function(e){}) 

này làm việc cho IE10 (đầu vào) và ie8 (propertychange) nhưng không phải cho ie9

tôi thực sự cố định nó cho ie9 với sự kiện mousedown, không đẹp, nhưng điều đó và mouseup là những sự kiện duy nhất mà bắn vào nó

2

Không chắc chắn, nếu vẫn có ai đó đang tìm kiếm giải pháp. Rất tiếc, không có trình xử lý sự kiện nào có sẵn cho biểu tượng rõ ràng (X) rõ ràng (X), tuy nhiên bên dưới đoạn mã/thủ thuật làm việc cho tôi. CSS để hoàn ẩn biểu tượng rõ ràng (X) và nếu bạn không muốn để ẩn rõ ràng (X) biểu tượng nhưng cần phải xử lý sau đó JS đoạn mã sẽ help.Verified trong IE 8,9 , 10,11 và nó hoạt động tốt lừa

CSS:

#textFieldId::-ms-clear {display: none;} - Đối với lĩnh vực văn bản đặc biệt

hoặc

input[type=text]::-ms-clear { display: none; } - cho tất cả các lĩnh vực văn bản trong phạm vi

HOẶC

Javascript lừa (để thiết lập lại giá trị trường văn bản để trống/trống và bắn các sự kiện KeyUp html. Theo đó, bạn có thể thay đổi theo nhu cầu của bạn)

$('#textFieldId').bind("mouseup", function() { 
     var $input = $(this); 
     var oldValue = $input.val(); 
     if (oldValue == "") { 
      return; 
     } 
     setTimeout(function() { 
      var newValue = $input.val(); 
      if (newValue == "") { 
       $input.trigger("keyup"); 
      } 
     }, 1); 
    }); 
Các vấn đề liên quan