Maison interface Web Questions et réponses frontales Que signifie une entrée CSS non modifiable ?

Que signifie une entrée CSS non modifiable ?

Apr 24, 2023 am 09:09 AM

Dans le processus de développement front-end, l'élément d'entrée est l'un des contrôles de formulaire les plus couramment utilisés. Dans certains cas particuliers, nous devons empêcher les utilisateurs de modifier l'élément d'entrée. À ce stade, nous pensons généralement à définir l'attribut CSS de l'élément d'entrée pour répondre à cette exigence, mais en fait, ce n'est pas une solution réalisable.

En CSS, il existe en effet certains attributs associés qui peuvent être utilisés pour contrôler le comportement et le style des éléments d'entrée, tels que les attributs disabled et readonly. Mais ces attributs ne modifient pas essentiellement les attributs CSS de l'élément d'entrée, mais modifient les méthodes d'interaction autorisées pour obtenir l'effet d'interdiction ou de lecture seule. disabledreadonly 属性。但这些属性本质上并不是修改 input 元素的CSS 属性,而是改变其允许的交互方式,达到禁止或只读的效果。

我们常常会尝试使用 CSS 属性来实现 input 不可编辑的需求,比如:

input {
  pointer-events: none;
  user-select: none;
  color: gray;
  background-color: #fafafa;
}
Copier après la connexion

这样的 CSS 代码看起来很直接,但实际上却无效,因为 CSS 样式不能直接控制 input 元素中的值。无论你怎么设置,使用 input 元素的 value 属性都可以在 JavaScript 中被修改。

那么,为什么不能直接在 CSS 中修改 input 元素的样式和值?这和 input 元素的特性和用途有关。

首先, input 元素的值应该是由用户自主输入或从其他来源获取,而程序员不应该因为自己的需求而强行修改它。因此,只能通过设置 input 的 disabledreadonly

Nous essayons souvent d'utiliser les propriétés CSS pour répondre à l'exigence selon laquelle l'entrée ne peut pas être modifiée, comme :

<input type="text" id="myInput" disabled>
Copier après la connexion
Un tel code CSS semble très simple, mais il est en fait inefficace car les styles CSS ne peuvent pas contrôler directement la valeur dans l'élément d'entrée. . Quelle que soit la façon dont vous le configurez, il peut être modifié en JavaScript à l'aide de l'attribut value de l'élément d'entrée.
  1. Alors, pourquoi le style et la valeur de l'élément d'entrée ne peuvent-ils pas être modifiés directement en CSS ? Ceci est lié aux caractéristiques et à l’objectif de l’élément d’entrée.
  2. Tout d'abord, la valeur de l'élément d'entrée doit être saisie indépendamment par l'utilisateur ou obtenue à partir d'autres sources, et les programmeurs ne doivent pas la modifier de force en raison de leurs propres besoins. Par conséquent, vous pouvez uniquement vous assurer que sa valeur n'est pas modifiée en définissant l'attribut disabled ou readonly de l'entrée.
  3. Dans le même temps, l'élément d'entrée a reçu une sémantique unique dès le début de la conception. Dans une page Web, l'entrée est un contrôle utilisé pour obtenir les données d'entrée de l'utilisateur. Les données d'entrée seront envoyées au serveur d'arrière-plan pour traitement. Si le programmeur peut contrôler directement le style et la valeur de l'entrée, certains risques imprévisibles peuvent survenir, tels que :

Des programmes malveillants peuvent utiliser JavaScript ou des extensions de navigateur pour altérer la valeur de l'entrée, soumettant ainsi des soumissions inappropriées dans le nom de l'utilisateur. Données ;

    Les attaquants de sites Web malveillants peuvent utiliser des attaques CSS pour masquer les données d'entrée et frauder les informations de l'utilisateur ;
  1. Difficulté de maintenance : lorsque les styles et les valeurs sont soumis à des restrictions de modification en même temps, cela deviendra très difficile de maintenir ces éléments d’entrée.

Par conséquent, nous ne pouvons fondamentalement pas modifier directement la valeur de l'élément d'entrée. Cependant, dans certains cas nécessaires, nous pouvons toujours atteindre l'état de saisie non modifiable via le code. Voici plusieurs méthodes d'implémentation courantes :
  1. Utilisez l'attribut désactivé

L'attribut désactivé est possédé par le contrôle d'entrée lui-même. Le définir rendra l'élément d'entrée gris et ne pourra pas être modifié. En effet, les contrôles indisponibles ne répondent à aucun événement d'interaction, y compris les clics et les saisies au clavier. Il s’agit d’une méthode très sûre et facile à mettre en œuvre.
    <input type="text" id="myInput" readonly>
    Copier après la connexion
  1. Utilisez l'attribut en lecture seule

L'attribut en lecture seule est un autre attribut possédé par le contrôle d'entrée lui-même. Par rapport à désactivé, la lecture seule rend l'élément d'entrée en lecture seule et ne change pas son apparence. Cela signifie que vous pouvez toujours utiliser CSS pour modifier le style de l'élément d'entrée, mais vous ne pouvez pas modifier sa valeur. Cependant, cette propriété n'affecte que l'utilisateur et la valeur peut toujours être modifiée à l'aide de JavaScript ou du code backend.

<input type="text" id="myInput" onkeyup="storeInputValue(this)" >

<script>
  function storeInputValue(input) {
    input.setAttribute('value', input.value);
    input.setAttribute('disabled', 'disabled');
  }
</script>
Copier après la connexion

Surveillance à l'aide de JavaScript

La dernière méthode consiste à utiliser JavaScript pour empêcher la modification de la valeur de l'élément d'entrée. Après les saisies de l'utilisateur, nous pouvons utiliser JavaScript pour stocker la valeur d'entrée et désactiver l'élément d'entrée afin que même si l'utilisateur clique à nouveau, l'élément d'entrée ne puisse pas être modifié. 🎜rrreee🎜Dans ce cas, l'élément d'entrée devient indisponible immédiatement après la saisie de la valeur et l'utilisateur ne peut plus modifier sa valeur. Il convient toutefois de noter que cette solution n’est pas parfaite. 🎜🎜Résumé🎜🎜Grâce à l'introduction ci-dessus, nous pouvons savoir qu'il n'est pas valide d'utiliser des propriétés CSS pour contrôler que la valeur de l'élément d'entrée n'est pas modifiable. Bien que nous puissions obtenir des effets non modifiables en définissant certaines propriétés du contrôle d'entrée lui-même ou en utilisant JavaScript pour surveiller l'entrée. Mais cela doit être fait avec prudence, car les éléments d'entrée ont une sémantique et des fonctions extrêmement importantes dès le début de leur conception, et un contrôle excessif de ceux-ci peut avoir des effets négatifs inattendus. 🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Le rôle de React dans HTML: Amélioration de l'expérience utilisateur Le rôle de React dans HTML: Amélioration de l'expérience utilisateur Apr 09, 2025 am 12:11 AM

React combine JSX et HTML pour améliorer l'expérience utilisateur. 1) JSX incorpore du HTML pour rendre le développement plus intuitif. 2) Le mécanisme DOM virtuel optimise les performances et réduit les opérations DOM. 3) Interface utilisateur de gestion basée sur les composants pour améliorer la maintenabilité. 4) La gestion des états et le traitement des événements améliorent l'interactivité.

Quelles sont les limites du système de réactivité de Vue 2 en ce qui concerne les changements de tableau et d'objets? Quelles sont les limites du système de réactivité de Vue 2 en ce qui concerne les changements de tableau et d'objets? Mar 25, 2025 pm 02:07 PM

Le système de réactivité de Vue 2 lutte avec le réglage de l'index de tableau direct, la modification de la longueur et l'ajout / suppression de la propriété de l'objet. Les développeurs peuvent utiliser les méthodes de mutation de Vue et Vue.set () pour assurer la réactivité.

React Composants: Création d'éléments réutilisables en HTML React Composants: Création d'éléments réutilisables en HTML Apr 08, 2025 pm 05:53 PM

Les composants React peuvent être définis par des fonctions ou des classes, encapsulant la logique de l'interface utilisateur et acceptant les données d'entrée via des accessoires. 1) Définissez les composants: utilisez des fonctions ou des classes pour retourner les éléments de réact. 2) Rendre le composant: React Cappel Render Method ou Exécute le composant de fonction. 3) Composants de multiplexage: passer des données à travers des accessoires pour construire une interface utilisateur complexe. L'approche du cycle de vie des composants permet d'exécuter la logique à différentes étapes, améliorant l'efficacité de développement et la maintenabilité du code.

React and the frontend: construire des expériences interactives React and the frontend: construire des expériences interactives Apr 11, 2025 am 12:02 AM

React est l'outil préféré pour construire des expériences frontales interactives. 1) Réagir simplifie le développement de l'interface utilisateur par la composontisation et le DOM virtuel. 2) Les composants sont divisés en composants de fonction et composants de classe. Les composants de fonction sont plus simples et les composants de la classe fournissent plus de méthodes de cycle de vie. 3) Le principe de travail de React repose sur le DOM virtuel et l'algorithme de réconciliation pour améliorer les performances. 4) La gestion de l'État utilise USESTATE ou This. State, et des méthodes de cycle de vie telles que ComponentDidMount sont utilisées pour une logique spécifique. 5) L'utilisation de base comprend la création de composants et la gestion de l'état, et l'utilisation avancée implique des crochets personnalisés et une optimisation des performances. 6) Les erreurs courantes incluent les mises à jour de statut et les problèmes de performance inappropriés, les compétences de débogage comprennent l'utilisation de Reactdevtools et d'excellents

Quels sont les avantages de l'utilisation de TypeScript avec React? Quels sont les avantages de l'utilisation de TypeScript avec React? Mar 27, 2025 pm 05:43 PM

TypeScript améliore le développement de React en offrant la sécurité du type, en améliorant la qualité du code et en offrant un meilleur support IDE, réduisant ainsi les erreurs et améliorant la maintenabilité.

Comment pouvez-vous utiliser UserReducer pour une gestion complexe de l'état? Comment pouvez-vous utiliser UserReducer pour une gestion complexe de l'état? Mar 26, 2025 pm 06:29 PM

L'article explique l'utilisation d'un userReducer pour une gestion complexe de l'état dans React, détaillant ses avantages sur UseState et comment l'intégrer avec l'utilisation d'effet pour les effets secondaires.

Que sont les composants fonctionnels dans vue.js? Quand sont-ils utiles? Que sont les composants fonctionnels dans vue.js? Quand sont-ils utiles? Mar 25, 2025 pm 01:54 PM

Les composants fonctionnels de Vue.js sont apatrides, légers et manquent de crochets de cycle de vie, idéaux pour rendre les données pures et optimiser les performances. Ils diffèrent des composants avec état en n'ayant pas d'état ou de réactivité, en utilisant directement les fonctions de rendu, un

React et la pile frontale: les outils et les technologies React et la pile frontale: les outils et les technologies Apr 10, 2025 am 09:34 AM

React est une bibliothèque JavaScript pour la construction d'interfaces utilisateur, avec ses composants principaux et sa gestion de l'État. 1) Simplifiez le développement de l'interface utilisateur par la composontisation et la gestion de l'État. 2) Le principe de travail comprend la réconciliation et le rendu, et l'optimisation peut être mise en œuvre via React.Memo et UseMemo. 3) L'utilisation de base est de créer et de rendre des composants, et l'utilisation avancée comprend l'utilisation de crochets et de contextapi. 4) Erreurs courantes telles que la mise à jour du statut incorrect, vous pouvez utiliser ReactDevTools pour déboguer. 5) L'optimisation des performances comprend l'utilisation de React.Memo, des listes de virtualisation et de la circulation des codes, et la maintenance de code et maintenable du code est la meilleure pratique.

See all articles