Maison >interface Web >js tutoriel >Comment simuler un attribut en lecture seule pour les balises de sélection HTML tout en conservant les données POST ?

Comment simuler un attribut en lecture seule pour les balises de sélection HTML tout en conservant les données POST ?

Barbara Streisand
Barbara Streisandoriginal
2024-11-10 16:44:02800parcourir

How to Simulate a Readonly Attribute for HTML Select Tags While Maintaining POST Data?

Émulation des attributs en lecture seule pour les balises de sélection HTML tout en conservant les données POST

En HTML, la balise de sélection n'a pas d'attribut dédié en lecture seule, avec seulement un attribut désactivé disponible. Cependant, la désactivation des entrées de formulaire empêche leur inclusion dans les requêtes POST ou GET.

Pour résoudre ce problème, une solution de contournement consiste à désactiver l'élément select et à ajouter une entrée masquée avec le même nom et la même valeur. Lorsque l'élément select est activé, sa valeur est copiée dans l'entrée masquée, imitant efficacement un attribut en lecture seule.

Voici un exemple d'implémentation :

$('#mainform').submit(function() {
    $('#formdata_container').show();
    $('#formdata').html($(this).serialize());
    return false;
});

$('#enableselect').click(function() {
    $('#mainform input[name=animal]')
        .attr("disabled", true);
    
    $('#animal-select')
        .attr('disabled', false)
        .attr('name', 'animal');
    
    $('#enableselect').hide();
    return false;
});

En manipulant l'attribut désactivé et en copiant les valeurs entre l'entrée select et l'entrée masquée, cette approche émule la fonctionnalité d'un attribut en lecture seule tout en permettant la publication des données.

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:
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