JavaScript implementiert eine Eingabefeldkomponente

JavaScript implementiert eine Eingabefeldkomponente

In diesem Artikelbeispiel wird der spezifische Code zur manuellen Implementierung einer Eingabefeldkomponente zu Ihrer Information bereitgestellt. Der spezifische Inhalt ist wie folgt

Hintergrund

In Taro H5 möchte ich ein Eingabefeld mit dem folgenden Stil implementieren:

Frage:

Es gibt keine Komponente dieses Stils in der Taro-Komponente und der Taro-UI-Komponente. Taro h5 unterstützt keine Änderung des Stils von Platzhaltern. Ich habe versucht, selbst eine Eingabekomponente zu implementieren, die den Stil flexibler definieren kann.

erreichen

JS-Code

importiere Taro, {Komponente} von '@tarojs/taro';
importiere { Ansicht } aus '@tarojs/components';
importiere { AtIcon } von „taro-ui“;

importiere './index.scss';

/**
 * @description Manuelles Implementieren einer Eingabefeldkomponente* @param placeholder: String Passen Sie den Platzhalter im Eingabefeld an* @param onClickSearch: Funktion Rückruf zum Abrufen des Eingabeinhalts*/
Klasse BaseInput erweitert Komponente {
  componentDidMount() {
    //Fokus auf Eingabefeld document.querySelector('.search').focus();
  }

  handleSearch = () => {
    //Inhalt des Eingabefelds abrufen const value = document.querySelector('.search').innerText;
    this.props.onClickSearch und this.props.onClickSearch (Wert);
  };

  rendern() {
    const { Platzhalter = 'Bitte eingeben' } = this.props;
    zurückkehren (
      <Klassenname anzeigen="base_input">
        <View className="meine_suche">
          <AtIcon
            Wert="Suche"
            Farbe = "999"
            Klassenname = "Suchsymbol"
            beiKlick={this.handleSearch}
          />
          {/* contenteditable kann steuern, ob ein Div bearbeitet werden kann*/}
          <Ansicht
            Klassenname="Suche"
            Inhalt editierbar
            Platzhalter={Platzhalter}
          ></Anzeigen>
        </Anzeigen>
      </Anzeigen>
    );
  }
}
Standard-BaseInput exportieren;

SCSS-Code

.base_input {
  .meine_suche {
    Box-Größe: Rahmenbox;
    Breite: 690px;
    Höhe: 56px;
    Zeilenhöhe: 56px;
    Rahmenradius: 28px;
    Rand: 12px automatisch;
    Hintergrund: #f8f8f8;
    Anzeige: Flex;
    .Suchsymbol {
      Breite: 30px;
      Höhe: 30px;
      Rand links: 20px;
      Rand rechts: 18px;
    }
    .suchen {
      Breite: 560px;
      Polsterung: 0px 18px;
      Hintergrund: #f8f8f8;
      Höhe: 56px;
      Farbe: #999;
      Schriftgröße: 28px;
      Schriftstärke: 400;
      &:leer::nach {
        Inhalt: Attr (Platzhalter);
      }
    }
  }
}

Das Obige ist der vollständige Inhalt dieses Artikels. Ich hoffe, er wird für jedermanns Studium hilfreich sein. Ich hoffe auch, dass jeder 123WORDPRESS.COM unterstützen wird.

Das könnte Sie auch interessieren:
  • Vue.js-Textfeld mit Dropdown-Komponente
  • Detaillierte Erklärung zur Verwendung der digitalen Eingabefeldkomponente von Vue.js
  • JS imitiert das Beispiel einer Komponente zur Vergrößerung des Alipay-Eingabetexteingabefelds
  • Entwicklung von JavaScript-Komponenten: Eingabefeld plus Kandidatenfeld
  • JS verwendet reguläre Ausdrücke, um das Eingabefeld so einzuschränken, dass nur Ganzzahlen und Dezimalzahlen (Beträge oder Bargeld) mit zwei Dezimalstellen zulässig sind
  • js und jquery Echtzeitüberwachung des Eingabefeldwerts Oninput- und Onpropertychange-Methoden
  • js überwacht die sofortigen Änderungen der Eingabefeldwerte bei Eigenschaftsänderung, bei Eingabe
  • JS implementiert die Methode zum Einblenden eines Eingabefelds auf der Webseite
  • js ändert dynamisch das Typattribut des Eingabefelds (Analyse der Implementierungsmethode)
  • js überwacht die Echtzeitänderungen des Eingabefeldwerts

<<:  Methode zur Realisierung einer automatisierten Bereitstellung basierend auf Docker + Jenkins

>>:  Detaillierte Erläuterung der MySQL-Mehrtabellenabfrage

Artikel empfehlen

Detaillierte Erläuterung der Anwendungsszenarien von Filtern in Vue

filter werden im Allgemeinen verwendet, um bestim...

Tutorial zum schnellen Bereitstellen von Clickhouse mit Docker-Compose

ClickHouse ist ein spaltenorientiertes Open-Sourc...

Lösung für den Apache-Cross-Domain-Ressourcenzugriffsfehler

In vielen Fällen platzieren große und mittelgroße...

5 Tipps zum Schutz Ihres MySQL Data Warehouse

Durch die Aggregierung von Daten aus verschiedene...

Der Unterschied zwischen MySQL count(1), count(*) und count(field)

Inhaltsverzeichnis 1. Erster Blick auf COUNT 2. D...

MySQL-Passwort ist korrekt, aber keine lokale Anmeldung möglich -1045

MySQL-Passwort ist korrekt, aber keine lokale Anm...

Vue simuliert die Warenkorb-Abrechnungsfunktion

In diesem Artikelbeispiel wird der spezifische Co...

CSS implementiert die Bottom-Tapbar-Funktion

Viele Mobiltelefone verfügen mittlerweile über di...

So löschen Sie Ordner, Dateien und Dekomprimierungsbefehle auf Linux-Servern

1. Ordner löschen Beispiel: rm -rf /usr/java Das ...