Heim >Web-Frontend >js-Tutorial >Wie kann ich Ereignisse in deaktivierten Eingabefeldern erfassen?

Wie kann ich Ereignisse in deaktivierten Eingabefeldern erfassen?

Patricia Arquette
Patricia ArquetteOriginal
2024-12-16 20:15:16914Durchsuche

How Can I Capture Events on Disabled Input Fields?

So erfassen Sie Ereignisse in deaktivierten Eingabefeldern

Deaktivierte Eingabefelder verarbeiten normalerweise keine Ereignis-Listener. Dies kann eine Herausforderung sein, wenn Sie Funktionen basierend auf Benutzerinteraktionen mit solchen Eingaben aktivieren müssen.

Problemumgehung:

Um dieses Problem zu beheben, können Sie Ereignishandler einrichten auf Containerelementen, da Browser häufig Ereignisse, die von deaktivierten Elementen stammen, im DOM-Baum weitergeben. Bestimmte Browser wie Firefox verhalten sich jedoch nicht auf diese Weise.

Browserübergreifende Lösung:

Für eine vollständige browserübergreifende Kompatibilität können Sie eine transparente Option platzieren Element, beispielsweise ein <div>, vor dem deaktivierten Eingabefeld. Dieses Element erfasst das Klickereignis:

<div>
$("div > div").click(function (evt) {
    $(this).hide().prev("input[disabled]").prop("disabled", false).focus();
});

Mit dieser Problemumgehung aktiviert das Klickereignis auf dem transparenten Overlay das deaktivierte Eingabefeld und gibt ihm den Fokus.

Demonstration:

Sie können diese Lösung in Aktion sehen unter: http://jsfiddle.net/RXqAm/170/ (unter Verwendung von jQuery 1.7 mit prop anstelle von attr).

Das obige ist der detaillierte Inhalt vonWie kann ich Ereignisse in deaktivierten Eingabefeldern erfassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn