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 Erklärung der markierten Union-Typen in TypeScript 2.0

Inhaltsverzeichnis Erstellen von Zahlungsmethoden...

Detailliertes Installationstutorial für die MySQL-Zip-Archivversion (5.7.19)

1. Laden Sie die Zip-Archivversion von der offizi...

Dockers Mechanismus zur Integritätserkennung

Für Container ist die einfachste Integritätsprüfu...

Implementierung des Wasserfall-Layouts im Uni-App-Projekt

GitHub-Adresse, Sie können es mit einem Stern mar...

So verwenden Sie das Vue-Router-Routing

Inhaltsverzeichnis 1. Beschreibung 2. Installatio...

Fallstudie: Ajax responseText analysiert JSON-Daten

Lösen Sie das Problem, dass der vom Server nach d...

Beispiel zum Deaktivieren der Browser-Cache-Konfiguration im Vue-Projekt

Beim Freigeben eines Projekts müssen Sie häufig d...

Docker-Grundlagen-Tutorial: Detaillierte Erklärung der Dockerfile-Syntax

Vorwort Dockerfile ist ein vom Docker-Programm in...

Problem mit Berechtigungen zum Ändern gespeicherter Prozeduren in MySQL

Bei der Verwendung einer MySQL-Datenbank treten h...