Zdarzenie wywołane przy czyszczeniu tekstu w IE10 z ikoną clear
W chrome Zdarzenie "Szukaj" jest wywoływane przy wejściach wyszukiwania, Gdy użytkownik kliknie przycisk Wyczyść.
Czy istnieje sposób na uchwycenie tego samego Zdarzenia w javascript w Internet Explorer 10?
9 answers
Jedyne rozwiązanie, które w końcu znalazłem:
// There are 2 events fired on input element when clicking on the clear button:
// mousedown and mouseup.
$("input").bind("mouseup", function(e){
var $input = $(this),
oldValue = $input.val();
if (oldValue == "") return;
// When this event is fired after clicking on the clear button
// the value is not cleared yet. We have to wait for it.
setTimeout(function(){
var newValue = $input.val();
if (newValue == ""){
// Gotcha
$input.trigger("cleared");
}
}, 1);
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2013-01-24 10:20:51
Zdarzenie oninput
zostanie wywołane z {[1] } ustawionym na pusty łańcuch. To rozwiązało problem dla mnie, ponieważ chcę wykonać tę samą akcję, czy wyczyścić pole wyszukiwania za pomocą X lub Backspace. Działa to tylko w IE 10.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-21 05:40:33
Zamiast tego użyj input
. Działa z takim samym zachowaniem we wszystkich przeglądarkach.
$(some-input).on("input", function() {
// update panel
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-11-02 21:40:11
Dlaczego nie
$("input").bind('input propertychange', function() {
if (this.value == ""){
$input.trigger("cleared");
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-29 19:09:01
Zdaję sobie sprawę, że na to pytanie udzielono odpowiedzi, ale przyjęta odpowiedź nie zadziałała w naszej sytuacji. IE10 nie rozpoznał / wystrzelił $input.trigger("cleared");
.
Nasze ostateczne rozwiązanie zastąpiło tę instrukcję zdarzeniem keydown w kluczu ENTER (kod 13). Dla potomności, to działa w naszym przypadku:
$('input[type="text"]').bind("mouseup", function(event) {
var $input = $(this);
var oldValue = $input.val();
if (oldValue == "") {
return;
}
setTimeout(function() {
var newValue = $input.val();
if (newValue == "") {
var enterEvent = $.Event("keydown");
enterEvent.which = 13;
$input.trigger(enterEvent);
}
}, 1);
});
Ponadto chcieliśmy zastosować to powiązanie tylko do wejść "Szukaj", a nie do każdego wejścia na stronie. Oczywiście, IE uczynił to trudne, jak również... chociaż mamy zakodowane <input type="search"...>
, tj. renderował je jako type="text"
. Dlatego selektor jQuery odwołuje się do type="text"
.
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-04-09 17:01:10
Możemy po prostu posłuchać input
wydarzenia. Proszę zobaczyć odniesienie Aby uzyskać szczegółowe informacje. W ten sposób naprawiłem problem z przyciskiem wyczyść w Sencha ExtJS na IE:
Ext.define('Override.Ext.form.field.ComboBox', {
override: 'Ext.form.field.ComboBox',
onRender: function () {
this.callParent();
var me = this;
this.inputEl.dom.addEventListener('input', function () {
// do things here
});
}
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-01-09 07:08:16
Wyjściem z pudełka jest pozbycie się X całkowicie za pomocą CSS:
::-ms-clear { display: none; } /* see https://stackoverflow.com/questions/14007655 */
Ma to następujące zalety:
- znacznie prostsze rozwiązanie-pasuje do jednej linii
- dotyczy wszystkich wejść, więc nie musisz mieć obsługi dla każdego wejścia
- Brak ryzyka złamania javascript z błędem w logice (mniej QA konieczne)
- standaryzuje zachowanie w przeglądarkach-sprawia, że IE zachowuje się tak samo jak chrome, ponieważ chrome nie ma x
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2018-11-16 06:02:40
Dla mojego asp.net sterowanie serwerem
<asp:TextBox ID="tbSearchName" runat="server" oninput="jsfun_tbSearchName_onchange();"></asp:TextBox>
Js
function jsfun_tbSearchName_onchange() {
if (objTbNameSearch.value.trim() == '')
objBTSubmitSearch.setAttribute('disabled', true);
else
objBTSubmitSearch.removeAttribute('disabled');
return false;
}
Ref
MSDN OnChange event - testowane w IE10.
... lub ukryć za pomocą CSS:
input[type=text]::-ms-clear { display: none; }
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2014-01-15 18:47:08
Powyższy kod nie działał w moim przypadku i zmieniłem jedną linijkę i wprowadziłem $input.typeahead('val', '');
, która działa w moim przypadku..
// There are 2 events fired on input element when clicking on the clear button:// mousedown and mouseup.
$("input").on('mouseup', function(e){
var $input = $(this),
oldValue = $input.val();
if (oldValue === ''){
return;
}
// When this event is fired after clicking on the clear button // the value is not cleared yet. We have to wait for it.
setTimeout(function(){
var newValue = $input.val();
if (newValue === ''){
$input.typeahead('val', '');
e.preventDefault();
}
}, 1);
});
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-03-02 19:39:31