react+antd.3x implementiert IP-Eingabefeld

react+antd.3x implementiert IP-Eingabefeld

In diesem Artikel wird der spezifische Code von react+antd.3x zur Implementierung des IP-Eingabefelds zu Ihrer Information freigegeben. Der spezifische Inhalt ist wie folgt

Die Erscheinungsform ist wie folgt:

js + html

/**
 * zks 2021 10 26
 * IP-Eingabefeld zum Erstellen und Ändern virtueller Subnetze * Verwendung: Siehe benutzerdefinierte Formularsteuerelemente von antd-form.
 */
importiere React von „react“;
importiere { Input} von 'antd';
Stile aus „./index.less“ importieren
Klasse IpInput erweitert React.Component{
    Konstruktor(){
        super();
        diese._refs = {
          refip_0: React.createRef(),
          refip_1: React.createRef(),
          refip_2: React.createRef(),
          refip_3: React.createRef()
        };
    }
    handleNumberChange = (e,Typ) => {
        // Stellen Sie sicher, dass der Mindestwert 0 ist.
        const number = parseInt(e.target.value || 0, 10);
        wenn (istNaN(Zahl)) {
          zurückkehren;
        }
        lass Obj = {}
        Obj[`${type}`] = Zahl
        dies.triggerChange(Obj);
    };
    Triggeränderung = geänderterWert => {
        const { bei Änderung, Wert } = this.props;
        wenn (beiÄnderung) {
          beiÄnderung({
            ...Wert,
            ...geänderterWert,
          });
        }
      };
    turnIpPOS = (e,Typ)=>{
        lass self = dies;
         //Der linke Pfeil springt nach links und tut nichts if(e.keyCode === 37) {
          wenn(Typ === 0) {} sonst {
            self._refs[`refip_${type-1}`].current.focus();
          }
        }
        //Der rechte Pfeil, die Eingabetaste, die Leertaste und der Doppelpunkt springen alle nach rechts und der rechte tut nichts, wenn (e.keyCode === 39 || e.keyCode === 13 || e.keyCode === 32 || e.keyCode === 190) {
           wenn(Typ === 3) {} sonst {
            self._refs[`refip_${type+1}`].current.focus();
           }
        }
    }
    machen(){
        const { Wert } = this.props;
        zurückkehren (
            <Input.Group kompakter Klassenname = {styles.inputGroup}>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_0} Wert = {Wert.ip_0} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_0')}} Bei Schlüsselerhöhung = {(e) =>this.turnIpPOS(e,0)}/>
              <span className = {styles.dot} ></span>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_1} Wert = {Wert.ip_1} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_1')}} Bei Tastendruck = {(e) =>this.turnIpPOS(e,1)}/>
              <span Klassenname = {styles.dot}></span>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_2} Wert = {Wert.ip_2} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_2')}} Bei Tastendruck = {(e) =>this.turnIpPOS(e,2)}/>
              <span Klassenname = {styles.dot}></span>
              <Eingabestil = {{ Breite: '24 %' }} Klassenname = {Stile.self_input} Ref = {this._refs.refip_3} Wert = {Wert.ip_3} Maximallänge = {3} Bei Änderung = {(e) => {this.handleNumberChange(e,'ip_3')}} Bei Tastendruck = {(e) =>this.turnIpPOS(e,3)}/>
            </Eingabe.Gruppe>
        )
    }
   
}
Standard-IpInput exportieren;

CSS

.Eingabegruppe {
  Rand: 1px durchgezogen #d9d9d9;
  Rahmenradius: 2px;
  Übergang: alle 0,3 s;
  &:schweben {
    Rahmenfarbe: #45bbff;
    Rahmenbreite rechts: 1px !wichtig;
    Umriss: 0;
    Kastenschatten: 0 0 0 2px rgba (29, 165, 255, 0,2);
  }
  Textausrichtung: zentriert;
  .punkt {
    Breite: 3px;
    Höhe: 3px;
    Rand: 1px durchgezogen #000;
    Rahmenradius: 3px;
    Hintergrundfarbe: #000;
    Deckkraft: 0,5;
    Z-Index: 9;
    Position: relativ;
    oben: 21px;
  }
}
.self_input {
  Rand: keiner;
  Umriss: 0px;
  &:schweben {
    Kastenschatten: keiner;
  }
  &::Auswahl {
    Kastenschatten: keiner;
  }
  &:Fokus {
    Kastenschatten: keiner;
  }
}

Anwendung

IPInput importieren aus '../../public/IpInput';
<FormItem label="Subnetz-Gateway" {...formItemLayout}>
                {getFieldDecorator('Preis', {
                  Anfangswert: { ip_0: 255, ip_1: 235, ip_2: 255, ip_3: 255 },
                  Regeln: [{ validator: this.checkIp }],
                })(<IPInput />)}
 </FormItem>

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:
  • React-Beispiel zum Abrufen des Werts aus dem Eingabefeld
  • Lösen Sie das Problem, dass die React-Native-Softtastatur auftaucht und das Eingabefeld blockiert
  • So lösen Sie das Problem, dass das Eingabefeld in React Android durch die mobile Tastatur blockiert wird
  • React-Native erstellt Implementierungscode für eine Texteingabefeldkomponente

<<:  Tutorial zum Erstellen einer HTML-Webseite. Verwenden Sie Iframe-Tags mit Bedacht.

>>:  Wie viele Daten können in einer MySQL-Tabelle gespeichert werden?

Artikel empfehlen

Einführung in die neuen Funktionen von ECMAscript

Inhaltsverzeichnis 1. Standardwerte für Funktions...

Lösung für den erfolgreichen Start von MySQL, aber ohne Überwachung des Ports

Problembeschreibung MySQL wurde erfolgreich gesta...

Beispielcode und Methode zum Speichern von Arrays in MySQL

Beim Schreiben gespeicherter Prozeduren werden hä...

Einführung in /etc/my.cnf-Parameter in MySQL 5.7

Nachfolgend finden Sie einige allgemeine Paramete...

Beschreibung der Nginx-Zugriffsprotokoll- und Fehlerprotokollparameter

veranschaulichen: Es gibt zwei Haupttypen von Ngi...

WeChat-Applet implementiert Suchfeldfunktion

In diesem Artikelbeispiel wird der spezifische Co...

Frameset über Iframe in Body einfügen

Da Frameset und Body auf derselben Ebene liegen, k...

Detailliertes Tutorial zur Installation der MySQL 8.0.20-Datenbank auf CentOS 7

Weiterführende Literatur: MySQL8.0.20-Installatio...

So verwenden Sie die MySQL-Indexzusammenführung

Die Indexzusammenführung ist ein intelligenter Al...

Spezifische Verwendung des Linux-gcc-Befehls

01. Befehlsübersicht Der Befehl gcc verwendet den...

Detaillierte Erklärung zur Verwendung von nohup /dev/null 2>&1

Befehl „nohup“: Wenn Sie einen Prozess ausführen ...