Heim Web-Frontend js-Tutorial Was Sie beim Schreiben von JavaScript-Textfeldskripten beachten sollten: Tipps zu Javascript

Was Sie beim Schreiben von JavaScript-Textfeldskripten beachten sollten: Tipps zu Javascript

May 16, 2016 pm 03:18 PM
javascript 文本框 脚本

In HTML gibt es zwei Möglichkeiten, Textfelder darzustellen:

Eine davon ist eine einzelne Textzeile mit Eingabeelementen und die andere ist ein mehrzeiliges Textfeld mit Textbereich.

Um die Eingabemethode zu verwenden, muss Typ hinzugefügt und auf „Text“ gesetzt werden.

    Mit der Eigenschaft
  • size können Sie die Anzahl der Zeichen angeben, die im Textfeld angezeigt werden können.
  • Das Attribut
  • value kann den Anfangswert des Textfelds festlegen.
  • Das Attribut
  • maxlength wird verwendet, um die maximale Anzahl von Zeichen anzugeben, die im Textfeld akzeptiert werden können.

Der Anfangswert von textarea muss innerhalb der Start- und End-Tags platziert werden.

  • cols ist die Anzahl der Textfeld-Zeichenzeilen;
  • Zeilen ist die Anzahl der Textfeld-Zeichenspalten;
  • Außerdem können Sie nicht die maximale Anzahl von Zeichen für den Textbereich in HTML angeben;

1. Text auswählen

Beide der oben genannten Textfelder werden unterstützt

select()-Methode, diese Methode wird hauptsächlich verwendet, um den gesamten Text im Textfeld auszuwählen. Akzeptiert keine Parameter.
  • Das dieser Methode entsprechende Auswahlereignis wird ausgelöst, wenn der Text im Textfeld ausgewählt wird.
1. select()-Methode

Der folgende Code wählt den gesamten Text aus, solange das Textfeld den Fokus erhält:

var textBox = document.getElementById("myForm").elements["firstName"];
//设置默认值
textBox.value = "input your firstName";
//设置事件
textBox.addEventListener("focus", function () {
  event.target.select();
});
Nach dem Login kopieren
2. Ereignis auswählen

Wenn dieses Ereignis ausgelöst wird:

    Im Allgemeinen wird das Auswahlereignis nur ausgelöst, wenn der Benutzer Text auswählt (und die Maus loslässt);
  • Solange der Benutzer in IE8 und früheren Versionen einen Buchstaben auswählt (ohne die Maustaste loszulassen), wird das Auswahlereignis ausgelöst
  • wird auch ausgelöst, wenn die Methode select() aufgerufen wird;
  • Zum Beispiel:

3. Holen Sie sich den ausgewählten Text
var textBox = document.getElementById("myForm").elements["firstName"];
//设置默认值
textBox.value = "input your firstName";
//设置事件
textBox.addEventListener("select", function () {
  console.log("selected");
});
Nach dem Login kopieren

Verwendung von zwei Attributen:

AuswahlStart


  • AuswahlEnde
  • Diese beiden Attribute speichern 0-basierte Werte, die den Bereich (Offset) des ausgewählten Texts angeben. Um den Text in dem vom Benutzer ausgewählten Textfeld abzurufen, können Sie daher den folgenden Code verwenden:
Darüber hinaus können Sie dieses Attribut auch verwenden, um den Standardzustand „Alle ausgewählt“ festzulegen, wenn der Fokus erhalten wird:

var textBox = document.getElementById("myForm").elements["firstName"];
//设置默认值
textBox.value = "input your firstName";
//设置事件
textBox.addEventListener("select", function () {
  var selected = textBox.value.substring(textBox.selectionStart,textBox.selectionEnd);
  console.log(selected); 
});
Nach dem Login kopieren
oder:

textBox.addEventListener("focus", function () {
  textBox.selectionStart = "0";
  textBox.selectionEnd = textBox.value.length;
});
Nach dem Login kopieren
Wenn jedoch die Attribute „selectionStart/End“ verwendet werden, unterstützt IE8 dies nicht, sondern ein anderes namens

textBox.addEventListener("focus", function () {
  textBox.blur();
});
Nach dem Login kopieren
document.selection-Objekt, das die vom Benutzer ausgewählten Textinformationen im gesamten Dokument speichert

  • Holen Sie sich die kompatible Version des ausgewählten Textes:

2. Wählen Sie einen Teil des Textes aus

function getSelectedText (textbox) {
  if (typeof textbox.selectionStart == "number") {
    return textbox.value.substring(textbox.selectionStart,textbox.selectionEnd);
  }else if (document.selection) {
    return document.selection.createRange().text;
  }
}
Nach dem Login kopieren
Die Methode zum Auswählen eines Teils des Textes ist:

setSelectionRange()-Methode

. Erhält zwei Parameter: den Index des ersten auszuwählenden Zeichens und den Index des letzten Zeichens.

Um die Benutzerauswahl zu blockieren:

Um den Fokus auf das Textfeld unmittelbar vor oder nach dem Aufruf von setSelectionRange() zu setzen. Die im IE verwendete Methode ist der Anwendungsbereich zur Lösung von Textproblemen:

textBox.addEventListener("focus", function () {
  textBox.setSelectionRange(0,0);
});
textBox.addEventListener("select", function () {
  textBox.setSelectionRange(0,0);
});
Nach dem Login kopieren
Kompatible Version: häufiger verwendet

var range = textBox.createTextRange();
range.collapse(true); //范围折叠到开头
range.moveStart("Character",0);
range.moveEnd("Character",textBox.value.length);
range.select();
Nach dem Login kopieren

3. Eingabe filtern

function selectText(textbox, startIndex, stopIndex) {
  if (textbox.setSelectionRange) {
    textbox.setSelectionRange(startIndex, stopIndex);
  } else if (textbox.createTextRange()) {
    var range = textbox.createTextRange();
    range.collapse(true); //范围折叠到开头
    range.moveStart("Character", startIndex);
    range.moveEnd("Character", stopIndex);
    range.select();
  };
}
Nach dem Login kopieren

1. Blockzeichen

Der folgende Code erlaubt nur die Eingabe von Zahlen:

Einige Browser lösen jedoch Tastendruckereignisse für die Auf-, Ab- und Rücktaste aus. Daher müssen Sie diese häufig verwendeten Bedientasten entsperren, solange Sie nicht die Tasten blockieren, deren Zeichenkodierung weniger als 10 beträgt:

var textBox = document.getElementById("myForm").elements["firstName"];
textBox.autofocus = true;
textBox.addEventListener("keypress", function () {
  if (!/\d/.test(String.fromCharCode(event.charCode))) { //仅输入数字
    event.preventDefault();
  };
});
Nach dem Login kopieren

四、操作剪贴板

以下是6个剪贴板事件

  • beforecopy:在发生复制操作前触发
  • copy:在发生复制时触发
  • beforecut:在发生剪贴前操作
  • cut:在发生加贴时操作
  • beforepaste:在发生黏贴操作前触发
  • paste:在发生黏贴操作时触发

如设置禁止拷贝:

//拷贝之前提示禁止拷贝
textBox.addEventListener("beforecopy", function() {
  textBox.value = "do not copy";
});
//拷贝时禁止拷贝
textBox.addEventListener("copy", function() {
  event.preventDefault();
});
Nach dem Login kopieren

要访问剪贴板中的数据,可以使用clipboardData对象,在IE中,这个对象是window对象的属性,在friefox,safari和chrome,这个对象是相应event对象的属性;在IE中可以随时访问该对象;但在其他浏览器中只有在处理剪贴板事件期间才有效。

这个clipboardData对象有三个方法:

  • getData()
  • setData()
  • clearData()

getData()接收一个参数,即要取得数据的格式(IE中有两种数据格式:text和URL;在其他浏览器中这个参数是一种MIME类型;不过可以用text代替text/plain)。

setData()接收两个参数,即数据类型和要放在剪贴板中的文本。(第一个参数中,IE支持text和URL;第二个参数中chrome和safari不支持text类型);这两个浏览器在成功将文本放到剪贴板中后,都会返回true;否则,返回false:

function getClipboardText(event) {
  var clipboardData = (event.clipboardData || window.clipboardData);
  return clipboardData.getData("text");
}

function setClipboardText(event, value) {
  if (event.clipboardData) {
    return event.clipboardData.setData("text/plain", value);
  } else if (window.clipboardData) {
    return window.clipboardData.setData("text", value);
  }
}

Nach dem Login kopieren

目前浏览器逐渐收紧对访问剪贴板的操作。

五、自动切换焦点

理论上就是在前一个文本框中的字符打到最大数量后,自动将焦点切换到下一个文本框:

DOM:

<form action="">
  <input type="text" name="tel11" id="txtTel1" maxLength="3">
  <input type="text" name="tel12" id="txtTel2" maxLength="3">
  <input type="text" name="tel13" id="txtTel3" maxLength="4">
  <input type="submit" name="btn" id="btn" value="submit">
</form>
Nach dem Login kopieren

js:

var textbox1 = document.getElementById("txtTel1");
var textbox2 = document.getElementById("txtTel2");
var textbox3 = document.getElementById("txtTel3");

textbox1.addEventListener("keyup", tabForward);
textbox2.addEventListener("keyup", tabForward);
textbox3.addEventListener("keyup", tabForward);

function tabForward() {
  var target = event.target;
  //当value长度等于最大值的时候
  if (target.value.length == target.maxLength) {
    var form = target.form;
    //遍历所在的form表单中的元素
    for (var i = 0, len = form.elements.length; i < len; i++) {
      //如果该元素是目标元素
      if (form.elements[i] == target) {
        //并且该元素的下一个元素为true 其他条件
        if ((form.elements[i + 1]) && (form.elements[i + 1].nodeType == 1) && (form.elements[i + 1].tagName.toLowerCase() == "input") && (form.elements[i + 1].type == "text")) {
          //则下个元素获得焦点
          form.elements[i + 1].focus();
        }
      }
    };
  }
}

Nach dem Login kopieren

六、HTML5约束验证API

1、必填字段required属性

在必填字段中添加属性required。它适用于input,textarea,select字段。使用下面的代码可以检测浏览器是否支持required属性:

var isRequiredSupported="required" in document.createElement("input");
Nach dem Login kopieren

2、其他输入类型

input的type属性增加了“email”和“url”;各浏览器也都为它们增加了定制的验证机制:

var input = document.createElement("input");
input.type = "email";
var isEmailSupported = (input.type == "email");
Nach dem Login kopieren

3、数值范围

除了“email”和“URL”,HTML5还定义了另外几个输入元素。这几个元素都要求填写基于数字的值:“number”,“range”,“datetime”,“datetime-local”,“date”,“mouth”,“week”,“time”。目前浏览器对这些类型支持并不好,如果真想使用的话要小心。

对这事数值类型的输入元素可以指定min属性,max属性,step属性。同时这些数值类型元素还有两个方法:stepUp(),stepDown()。都接受一个参数,要在当前基础上加上或减去的数值。

DOM:

<form action="">
  <input type="range" name="tel14" id="txtTel4" required min="10" max="20" step="1">
  <input type="button" value="up" id="up">
  <input type="text" id="output">
  <input type="submit" name="btn" id="btn" value="submit">
</form>
Nach dem Login kopieren

js:

var input = document.getElementById("txtTel4");
var up = document.getElementById("up");

input.addEventListener("mousemove", function () {
  var output = document.getElementById("output");
  output.value = input.value;
});
up.addEventListener("click", function () {
  //点击value值以2为单位增加
  input.stepUp(2);
  var output = document.getElementById("output");
  output.value = input.value;
});

Nach dem Login kopieren

3、输入模式

HTML5新增了pattern属性,这个属性的值是一个正则表达式,用于匹配文本框中的值。

<input type="text" id="number" pattern="\d{3}">

var num = document.getElementById("number");
console.log(num.pattern); //\d{3}

Nach dem Login kopieren

可以使用以下代码来检测浏览器是否支持pattern属性:

var isPatternSupported="pattern" in document.createElement("input");
Nach dem Login kopieren

4、检测有效性

使用checkValidity()方法可以检测表单中的字段是否有效。所有表单的字段都有这个方法,如果检查有效返回true。

<form action="">
  <input type="text" pattern="w" id="name" required>
  <input type="number" max="10" id="num" required>
  <input type="button" id="check" value="check">
  <input type="submit" id="submit" value="submit" disabled>
</form>

var form = document.forms[0];
var name = document.getElementById("name");
var number = document.getElementById("num");
var check = document.getElementById("check");
var submit = document.getElementById("submit");

check.addEventListener("click", function () {
  console.log(form.checkValidity()); //检测整个表单是否正确
  if (form.checkValidity()) {
    submit.removeAttribute("disabled");
    check.disabled = true;
  }else{
    alert("请检查表单");
  }
});

Nach dem Login kopieren

input的validity属性会给出什么字段有效和无效的具体信息。

var inputName = document.getElementById("inputName");
inputName.onblur = function() {
  if (inputName.checkValidity()) {
    inputName.style.color = "white";
    inputName.style.backgroundColor = "green";

  } else {
    inputName.style.color = "white";
    inputName.style.backgroundColor = "red";
    if (inputName.validity.patternMismatch) {
      inputName.value = "请填写正确的格式";
    }
  }
};
inputName.addEventListener("mouseenter", function () {
  inputName.focus();
  inputName.select();
});

Nach dem Login kopieren

Die Gültigkeit umfasst hauptsächlich die folgenden Attribute:

  • customError: ob setCustomValidity() gesetzt ist
  • patternMismatch: ob es mit dem Musterattribut übereinstimmt
  • rangeOverflow: ob es größer als der Maximalwert ist;
  • rangeUnderflow: ob es kleiner als der Mindestwert ist;
  • stepMisMatch: ob die Schrittgröße angemessen ist
  • tooLong: ob maxlength überschritten wird;
  • typeMismatch: ob es sich nicht um den E-Mail-Typ und den URL-Typ handelt;
  • gültig: Wenn andere Attribute hier falsch sind, geben Sie true zurück
  • valueMissing: Wenn kein Wert erforderlich ist, geben Sie „true“ zurück.
5. Verifizierung deaktivieren

Durch das Festlegen des novalidate-Attributs des Formulars kann das Formular nicht überprüft werden. Nachdem Sie das Formular mit js erhalten haben, wird die Formularvalidierung deaktiviert, wenn Sie das Attribut „novalidate“ auf „true“ setzen.

Durch das Hinzufügen des formnovalidate-Attributs zur Senden-Schaltfläche wird das übermittelte Formular nicht validiert. Nachdem Sie js verwendet haben, um die Schaltfläche „Senden“ abzurufen, setzen Sie das Attribut „formnovalidata“ auf „true“, wodurch die Formularvalidierung deaktiviert und das Formular gesendet wird.

Das Obige ist der gesamte Inhalt dieses Artikels. Ich hoffe, er wird für das Studium aller hilfreich sein.

Erklärung dieser Website
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

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

Video Face Swap

Video Face Swap

Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Wie erstelle ich ein Skript zur Bearbeitung? Tutorial zum Erstellen eines Skripts durch Bearbeitung Wie erstelle ich ein Skript zur Bearbeitung? Tutorial zum Erstellen eines Skripts durch Bearbeitung Mar 13, 2024 pm 12:46 PM

Cutting ist ein Videobearbeitungstool mit umfassenden Bearbeitungsfunktionen, Unterstützung für variable Geschwindigkeit, verschiedenen Filtern und Schönheitseffekten sowie umfangreichen Ressourcen für die Musikbibliothek. In dieser Software können Sie Videos direkt bearbeiten oder Bearbeitungsskripte erstellen, aber wie geht das? In diesem Tutorial stellt der Redakteur die Methode zum Bearbeiten und Erstellen von Skripten vor. Produktionsmethode: 1. Klicken Sie, um die Bearbeitungssoftware auf Ihrem Computer zu öffnen, suchen Sie dann die Option „Erstellungsskript“ und klicken Sie zum Öffnen. 2. Geben Sie auf der kreativen Skriptseite den „Skripttitel“ ein und geben Sie dann in der Gliederung eine kurze Einführung in den Drehinhalt ein. 3. Wie kann ich die Option „Storyboard-Beschreibung“ in der Gliederung sehen?

Wie führe ich eine .sh-Datei im Linux-System aus? Wie führe ich eine .sh-Datei im Linux-System aus? Mar 14, 2024 pm 06:42 PM

Wie führe ich eine .sh-Datei im Linux-System aus? In Linux-Systemen ist eine .sh-Datei eine Datei, die als Shell-Skript bezeichnet wird und zum Ausführen einer Reihe von Befehlen verwendet wird. Das Ausführen von .sh-Dateien ist ein sehr häufiger Vorgang. In diesem Artikel wird erläutert, wie .sh-Dateien in Linux-Systemen ausgeführt werden, und es werden spezifische Codebeispiele bereitgestellt. Methode 1: Verwenden Sie einen absoluten Pfad, um eine .sh-Datei auszuführen. Um eine .sh-Datei in einem Linux-System auszuführen, können Sie einen absoluten Pfad verwenden, um den Speicherort der Datei anzugeben. Im Folgenden sind die spezifischen Schritte aufgeführt: Öffnen Sie das Terminal

So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Spracherkennungssystem mit WebSocket und JavaScript Dec 17, 2023 pm 02:54 PM

So implementieren Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem. Einführung: Mit der kontinuierlichen Weiterentwicklung der Technologie ist die Spracherkennungstechnologie zu einem wichtigen Bestandteil des Bereichs der künstlichen Intelligenz geworden. Das auf WebSocket und JavaScript basierende Online-Spracherkennungssystem zeichnet sich durch geringe Latenz, Echtzeit und plattformübergreifende Eigenschaften aus und hat sich zu einer weit verbreiteten Lösung entwickelt. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Spracherkennungssystem implementieren.

WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen WebSocket und JavaScript: Schlüsseltechnologien zur Implementierung von Echtzeitüberwachungssystemen Dec 17, 2023 pm 05:30 PM

WebSocket und JavaScript: Schlüsseltechnologien zur Realisierung von Echtzeit-Überwachungssystemen Einführung: Mit der rasanten Entwicklung der Internet-Technologie wurden Echtzeit-Überwachungssysteme in verschiedenen Bereichen weit verbreitet eingesetzt. Eine der Schlüsseltechnologien zur Erzielung einer Echtzeitüberwachung ist die Kombination von WebSocket und JavaScript. In diesem Artikel wird die Anwendung von WebSocket und JavaScript in Echtzeitüberwachungssystemen vorgestellt, Codebeispiele gegeben und deren Implementierungsprinzipien ausführlich erläutert. 1. WebSocket-Technologie

Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Verwendung von JavaScript und WebSocket zur Implementierung eines Echtzeit-Online-Bestellsystems Dec 17, 2023 pm 12:09 PM

Einführung in die Verwendung von JavaScript und WebSocket zur Implementierung eines Online-Bestellsystems in Echtzeit: Mit der Popularität des Internets und dem Fortschritt der Technologie haben immer mehr Restaurants damit begonnen, Online-Bestelldienste anzubieten. Um ein Echtzeit-Online-Bestellsystem zu implementieren, können wir JavaScript und WebSocket-Technologie verwenden. WebSocket ist ein Vollduplex-Kommunikationsprotokoll, das auf dem TCP-Protokoll basiert und eine bidirektionale Kommunikation zwischen Client und Server in Echtzeit realisieren kann. Im Echtzeit-Online-Bestellsystem, wenn der Benutzer Gerichte auswählt und eine Bestellung aufgibt

Windows PowerShell-Skript-Tutorial für Anfänger Windows PowerShell-Skript-Tutorial für Anfänger Mar 13, 2024 pm 10:55 PM

Wir haben dieses Windows PowerShell-Skript-Tutorial für Anfänger entwickelt, egal ob Sie ein Technikbegeisterter oder ein Profi sind, der seine Skriptfähigkeiten verbessern möchte. Wenn Sie keine Vorkenntnisse in PowerShell-Skripting haben, beginnt dieser Artikel mit den Grundlagen und ist auf Sie zugeschnitten. Wir helfen Ihnen, die Installationsschritte für eine PowerShell-Umgebung zu meistern und führen Sie durch die wichtigsten Konzepte und Funktionen von PowerShell-Skripten. Wenn Sie bereit sind, mehr über PowerShell-Skripting zu erfahren, begeben wir uns gemeinsam auf diese spannende Lernreise! Was ist WindowsPowerShell? PowerShell ist ein von Microsoft entwickeltes hybrides Befehlssystem

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript Dec 17, 2023 am 09:39 AM

So implementieren Sie ein Online-Reservierungssystem mit WebSocket und JavaScript. Im heutigen digitalen Zeitalter müssen immer mehr Unternehmen und Dienste Online-Reservierungsfunktionen bereitstellen. Es ist von entscheidender Bedeutung, ein effizientes Online-Reservierungssystem in Echtzeit zu implementieren. In diesem Artikel wird erläutert, wie Sie mit WebSocket und JavaScript ein Online-Reservierungssystem implementieren, und es werden spezifische Codebeispiele bereitgestellt. 1. Was ist WebSocket? WebSocket ist eine Vollduplex-Methode für eine einzelne TCP-Verbindung.

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Dec 17, 2023 pm 05:13 PM

JavaScript und WebSocket: Aufbau eines effizienten Echtzeit-Wettervorhersagesystems Einführung: Heutzutage ist die Genauigkeit von Wettervorhersagen für das tägliche Leben und die Entscheidungsfindung von großer Bedeutung. Mit der Weiterentwicklung der Technologie können wir genauere und zuverlässigere Wettervorhersagen liefern, indem wir Wetterdaten in Echtzeit erhalten. In diesem Artikel erfahren Sie, wie Sie mit JavaScript und WebSocket-Technologie ein effizientes Echtzeit-Wettervorhersagesystem aufbauen. In diesem Artikel wird der Implementierungsprozess anhand spezifischer Codebeispiele demonstriert. Wir

See all articles