input type="date" + input ohne "name"

  • Affected Version
    WoltLab Suite 3.1
    Affected App
    WoltLab Suite Core

    Ich habe das Problem, das eines meiner Inputs mit dem Datum aus meinem anderen <input> ausgefüllt wird, wenn man die Seite verlässt und per Zurück-Knopf auf der Maus zur Seite zurückkehrt.. Es scheint irgendwie damit zusammen zu hängen, dass das betroffene Input kein name-Attribut hat (ist in meinem Fall nicht notwendig, da es nur für JS benötigt wird).

    Demo-Video im Anhang.

    Ggf. kann man das in einer der nächsten Versionen beheben. Nach kurzem Debugging, scheint das Problem an dieser Stelle aufzutreten. Es passiert auch nicht immer. Was hilft, ist das öffnen der Entwicklerkonsole mit der Netzwerkoption "Disable cache", dann funktioniert das Reproduzieren bei mir immer.

    Getestet in Chrome im WSC 3.1 und 5.4.

    Live-Demo: https://cwalz.de/qedfwqeferheh/


    Demo-Code:

    Code
    <script data-relocate="true">
        require(['WoltLabSuite/Core/Ui/User/Search/Input'], function(UiUserSearchInput) {
            new UiUserSearchInput(elById('userSearch'));
        });
    </script>
    
    <input id="userSearch" type="text"{* name="userSearch"*}>
    <input type="date" name="time" id="time" value="{TIME_NOW|date:'c'}">
    
    <a href="{link}{/link}">index<a>
  • Hallo,

    der Fehler liegt im verwendeten HTML. Der Date-Picker geht davon aus, dass sich dieser in einem eigenen Container befindet und ein paar Zeilen weiter die <input>-Elemente in ein .inputAddon verschoben werden. Sobald sich das "unbeteiligte" Eingabefeld in einem anderen Eltern-Element befindet, passt es wieder, denn dann entspricht es den Erwartungen des Code.

  • Was heißt eigener Container?

    So ist es auch reproduzierbar:

  • Eine gefühlte Ewigkeit später: Ich konnte es insofern eingrenzen, als dass https://github.com/WoltLab/WCF/bl…ch/Input.ts#L82 den Unterschied macht.

    • Sobald ich das autocomplete = off entferne, tritt das Problem nicht mehr auf.
    • Es tritt auch dann nicht mehr auf, wenn sich eines oder beide Elemente in einem <form> befinden.
    • Es ist auch nicht auf ein leeres/fehlendes name-Attribut begrenzt, sobald ich es etwa beides auf asdf setze, tritt es auch auf.

    Es wird sogar noch absurder, ich habe den Testfall erweitert:

    Damit tritt das Problem genauso auf, aber der Wert landet jetzt im Feld mit der ID blubSearch.

    Und als ob es immer noch nicht absurd genug ist, sobald ich im HTML autocomplete="off" bei input#blubSearch setze, taucht der seltsame Wert auf einmal bei input#userSearch auf.

Participate now!

Don’t have an account yet? Register yourself now and be a part of our community!