IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

jQuery Discussion :

Modifier les attr ds div commençant par ligne


Sujet :

jQuery

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut Modifier les attr ds div commençant par ligne
    Bonjour,

    J'ai un mal fou a comprendre la logique du jquery, mais je ne désespère pas.

    Je souhaite parcourir mon Dom et y repérer tous les id commençant par ligne.
    j'ai une ligne de x id correspondant à ce critère.

    Parmi cette liste d'id je souhaite repérer tous les inputs select et text pour leur changer leur attribut en readonly.

    Voila globalement la demande.

    Exemple de code HTML de ma page
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    <! Ligne 2 !>		
    <tr id='ligne1' bgcolor = "#FFFFFF" align="left" valign="top" border="1" cellspacing="0" class="St1" Style='display' >
    <td align='center'>01</td><td>
    <input name="%%Surrogate_T_1" type="hidden" value="1">
    <select name="T_1">
    <option>
    <option>Test1
    <option>Test1
    <option selected value="_o85hn8qbfdog70sk2epimst39epig_">Test1</select>
    </td><td>
    <input name="L_1" value="1 - essai" tabindex="102" size=80 onkeyup="maximum(this,120);"></td>
    </tr>
    <! Ligne 2 !>
    <tr id='ligne2' bgcolor = "#FFFFFF" align="left" valign="top" border="1" cellspacing="0" class="St1" style='display'>
    <td align='center'>02</td><td>
    <input name="%%Surrogate_T_2" type="hidden" value="1">
    <select name="T_2">
    <option>
    <option>Test2
    <option selected>Test2
    <option value="_o85hn8qbfdog70sk2epimst39epig_">Test2</select>
    </td><td>
    <input name="L_2" value="2 - essai " tabindex="102" size=80 onkeyup="maximum(this,120);"></td>
    </tr>

    Au niveau du jquery j'ai un peu de mal a demarrer :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $(document).ready(function(){
    $("div:contain('ligne')").css("readonly", "readonly"); 
    });
    Mais la ca ne traite pas les input. D'ailleurs ca ne traite rien du tout.

    Si une bonne âme pouvait me tendre la main.

    Merci d'avance

  2. #2
    Rédacteur/Modérateur

    Avatar de SpaceFrog
    Homme Profil pro
    Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Inscrit en
    Mars 2002
    Messages
    39 658
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 75
    Localisation : Royaume-Uni

    Informations professionnelles :
    Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Bidouilleur SharePoint
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2002
    Messages : 39 658
    Billets dans le blog
    1
    Par défaut
    je ne vois pas un seul div dans le code donné ... c'est normal ?

    si le but est d'atteindre les inputs dasn des tr dont l'id commence par "ligne"
    le selecteur ressemblerait plutot à

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("[id^='ligne'] input")
    Ma page Developpez - Mon Blog Developpez
    Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
    Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
    Votre post est résolu ? Alors n'oubliez pas le Tag

    Venez sur le Chat de Développez !

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut
    Ok merci.

    Euhhh, oui je me suis trompé dans le titre c'est pas les div mais les id.

    J'ai ajouté :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    $(document).ready(function()
    {
    $("[id^='ligne'] input").attr('readonly', true);
    });
    Cela fonctionne pour mes champs text mais pas pour les champs de type liste déroulante :
    le champ texte est L_2 ca fonctionne
    Le champ liste déroulante est T_2 ca ne fonctionne pas

    exemple :
    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    <tr id='ligne2' bgcolor = "#FFFFFF" align="left" valign="top" border="1" cellspacing="0" class="St1" style='display'>
    <td align='center'>02</td><td>
    <input name="%%Surrogate_T_2" type="hidden" value="1">
    <select name="T_2">
    <option>
    <option>Test2
    <option selected>Test2
    <option value="_o85hn8qbfdog70sk2epimst39epig_">Test2</select>
    </td><td>
    <input name="L_2" value="2 - essai " tabindex="102" size=80 "></td>
    </tr>

    Merci

  4. #4
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    Parmi cette liste d'id je souhaite repérer tous les inputs select et text pour leur changer leur attribut en readonly.
    Il n'existe pas d'input du type "select" !

    Un élément "<select>" peut être "disabled" mais pas "readonly".

    Exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var jObjLigne = $( "[id^='ligne']" );
     
    jObjLigne.find( "input[type='text']" ).prop( "readonly", true );
    jObjLigne.find( "select" ).prop( "disabled", true );

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    26
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 26
    Par défaut
    Ok j'ai bien compris le principe mais comme je suis nul en jquery et en explication c'est compliqué d'avoir la bonne réponse de suite.

    Ce code aurait dû fonctionner si mes champs étaient vraiment typés text et select.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var jObjLigne = $( "[id^='ligne']" );
     
    jObjLigne.find( "input[type='text']" ).prop( "readonly", true );
    jObjLigne.find( "select" ).prop( "disabled", true );
    Mais mes champs apparaissent comme ça dans le code source de la page :

    Code html : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    <input name="%%Surrogate_T_2" type="hidden" value="1">
    <select name="T_2">
    <option>
    <option>Test2
    <option selected>Test2
    <option value="_o85hn8qbfdog70sk2epimst39epig_">Test2</select>
    </td><td>
    <input name="L_2" value="2 - essai " tabindex="102" size=80 "></td>

    L_2 est bien disabled ou readonly avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("[id^='ligne'] input").attr('readonly', true);
    ou
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $("[id^='ligne'] input").attr('disabled', true);
    je voudrais la meme chose pour le champ T_2.

    ou s'il existe un moyen de faire : Je voudrais mettre tous les lignes de mon code ou le debut est "<input name=" ou "select name=" avec les attr ou prop readonly ou disabled ???

    Je suis navrant,

  6. #6
    Rédacteur

    Avatar de danielhagnoul
    Homme Profil pro
    Étudiant perpétuel
    Inscrit en
    Février 2009
    Messages
    6 389
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 74
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant perpétuel
    Secteur : Enseignement

    Informations forums :
    Inscription : Février 2009
    Messages : 6 389
    Billets dans le blog
    125
    Par défaut
    Bonjour

    C'est le même principe : $( "select[name='T_2']" ).

    Blog

    Sans l'analyse et la conception, la programmation est l'art d'ajouter des bogues à un fichier texte vide.
    (Louis Srygley : Without requirements or design, programming is the art of adding bugs to an empty text file.)

Discussions similaires

  1. Réponses: 6
    Dernier message: 31/12/2013, 15h16
  2. [PHP 5.2] modifier les valeurs d'un tableau par un formulaire
    Par dr_feelgood dans le forum Langage
    Réponses: 2
    Dernier message: 01/08/2009, 12h00
  3. Réponses: 3
    Dernier message: 03/11/2007, 18h44
  4. [VBA-E] Modifier les propriétés d'un control par une routine
    Par formath dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 04/03/2007, 10h45
  5. Réponses: 3
    Dernier message: 12/09/2005, 16h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo