Tim: ID Gruppe bedienen

Hallo Forum,

ich habe innerhalb eines HTML Formulares eine Tabelle mit Eingabefeldern.

Jedes Eingabefeld hat eine ID, die wie folgt aufgebaut ist:

ID = aufgabe_tid_vid

wobei mich jetzt besonders der Teil 'tid' hieraus interessiert, denn dieser Part ist in allen Formularfeldern einer Zeile identisch. Je Zeile ändert sie 'tid', aber innerhalb einer Zeile bleibt er identisch. Das alle IDs innerhalb der Tabelle eindeutig sind, ist klar.

Meine Frage: Wenn ich z.b. die Formularfelder einer Zeile auf 'readonly' stellen möchte, gibt es dann einen clevereren Trick, dies zu tun, als sämtliche IDs auf das Vorhandensein der entsprechenden 'tid' zu überprüfen? Oder anders ausgedrückt: Gibt es in Jquery einen Selektor, der das kann?

Tim

  1. Moin Tim,

    ID = aufgabe_tid_vid
    […]
    Meine Frage: Wenn ich z.b. die Formularfelder einer Zeile auf 'readonly' stellen möchte, gibt es dann einen clevereren Trick, dies zu tun, als sämtliche IDs auf das Vorhandensein der entsprechenden 'tid' zu überprüfen? Oder anders ausgedrückt: Gibt es in Jquery einen Selektor, der das kann?

    Meinst du sowas?

      
    $("input[id*='aufgabe_tid']").attr('readonly', 'readonly');  
    
    

    LG,
     CK

    1. Hallo Christian,

      erstmal danke für Deine schnelle Antwort.

      $("input[id*='aufgabe_tid']").attr('readonly', 'readonly');

      
      >   
        
      Ja genau sowas meine ich.  
        
      Kannst Du mir den mal erklären? Weil, so wie er dort steht, scheint er mir noch nicht ganz korrekt (falls ich ihn korrekt interpretiere).  
        
      Tim
      
      1. Moin Tim,

        $("input[id*='aufgabe_tid']").attr('readonly', 'readonly');

        
        > >   
        >   
        > Ja genau sowas meine ich.  
        >   
        > Kannst Du mir den mal erklären? Weil, so wie er dort steht, scheint er mir noch nicht ganz korrekt (falls ich ihn korrekt interpretiere).  
          
        Das ist ein Attribut-Selektor, der nach einem Substring sucht. `input[id\*='aufgabe\_tid']` heisst also „alle input mit einem Attribut `id`, dass den Substring ‚aufgabe\_tid‘ enthält.“ Siehe auch die [jQuery-Dokumentation](http://api.jquery.com/attribute-contains-selector/).  
          
        LG,  
         CK  
        
        -- 
        <http://ck.kennt-wayne.de/>  
        
        
        1. Hi Christian,

          Das ist ein Attribut-Selektor, der nach einem Substring sucht. input[id\*='aufgabe\_tid'] heisst also „alle input mit einem Attribut id, dass den Substring ‚aufgabe_tid‘ enthält.“ Siehe auch die jQuery-Dokumentation.

          Danke für die Erklärung und vor allem den Link.

          Ich denke zwar, daß ich Chris' Lösung nehmen werde, aber freue mich, noch etwas darüber hinaus gelernt zu haben.

          Tim

        2. @@Christian Kruse:

          nuqneH

          Das ist ein Attribut-Selektor, der nach einem Substring sucht. input[id\*='aufgabe\_tid'] heisst also „alle input mit einem Attribut id, dass den Substring ‚aufgabe_tid‘ enthält.“

          ‚aufgabe_tid‘ soll aber nicht irgendwo enthalten sein, sondern am Anfang stehen. Also ^= statt *=

          $("input[id^='aufgabe_tid']").attr('readonly', 'readonly');  
          
          

          Qapla'

          --
          „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
  2. Hi,

    Meine Frage: Wenn ich z.b. die Formularfelder einer Zeile auf 'readonly' stellen möchte, gibt es dann einen clevereren Trick, dies zu tun, als sämtliche IDs auf das Vorhandensein der entsprechenden 'tid' zu überprüfen?

    Ja – den, bereits im Voraus eine gemeinsame Klasse zu vergeben, um diese offenbar logisch zusammengehörigen Elemente auch dementsprechend auszuzeichnen.

    MfG ChrisB

    --
    Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
    1. Hi Chris,

      Ja – den, bereits im Voraus eine gemeinsame Klasse zu vergeben, um diese offenbar logisch zusammengehörigen Elemente auch dementsprechend auszuzeichnen.

      Oh. Diese Idee gefällt mir sehr gut.

      Tim

    2. Hi,

      Meine Frage: Wenn ich z.b. die Formularfelder einer Zeile auf 'readonly' stellen möchte, gibt es dann einen clevereren Trick, dies zu tun, als sämtliche IDs auf das Vorhandensein der entsprechenden 'tid' zu überprüfen?

      Ja – den, bereits im Voraus eine gemeinsame Klasse zu vergeben, um diese offenbar logisch zusammengehörigen Elemente auch dementsprechend auszuzeichnen.

      Aah, meine Idee hat sich also rumgesprochen, obwohl ich wegen diese Idee damals scharf angegriffen wurde ;)

      Btw., Tabellenzellen kannst Du auch adressieren, wenn Du nur die ID der Tabelle hast und wenn es nur eine Tabelle gibt, brauchst Du weder ID noch class.

      MfG

      1. Hi,

        Aah, meine Idee hat sich also rumgesprochen, obwohl ich wegen diese Idee damals scharf angegriffen wurde ;)

        Bis du einen Archiv-Link als Beleg bringst, lege ich das mal unter heiße-Hotti-Luft ab.

        MfG ChrisB

        --
        Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
        1. Hi,

          Aah, meine Idee hat sich also rumgesprochen, obwohl ich wegen diese Idee damals scharf angegriffen wurde ;)

          Bis du einen Archiv-Link als Beleg bringst, lege ich das mal unter heiße-Hotti-Luft ab.

          Das kannst Du selber suchen im Archiv 2014. Es ging im weiteren Sinne um Strukturierte Daten in einem HTTP-Request wobei ich damals das class-Attribute zum Gruppieren vorgeschlagen habe, sofern der Request nur mit Ajax rausgeht.

          Ein Programmierer muss Ideen haben, sonst kann er seinen Job aufgeben. Gelegentlich bezeichnen andere meine Ideen als heiße Luft und wollen nur nicht zugeben, dass die Ideen gut sind. Abstrakt gesehen ist nämlich jede Idee immer auch eine gute Idee. Schlecht ist höchstens die Umsetzung, die meistens auch Erfahrungen braucht.

          Und noch was: Es war mir schon immer ein Vergnügen, nicht nur aus den Fehlern anderer zu lernen und auch von PHP habe ich was gelernt, Link siehe oben ;)

          Schöne Grüße.

          1. @@hotti:

            nuqneH

            Aah, meine Idee hat sich also rumgesprochen, obwohl ich wegen diese Idee damals scharf angegriffen wurde ;)

            Bis du einen Archiv-Link als Beleg bringst, lege ich das mal unter heiße-Hotti-Luft ab.

            Das kannst Du selber suchen im Archiv 2014.

            Du hast hier eine Behauptung in den Raum geworfen, für die die Beweislast bei dir liegt. Bis dahin: heiße Hotti-Luft. (Wie auch immer ChrisB die ablegen will?)

            Qapla'

            --
            „Talente finden Lösungen, Genies entdecken Probleme.“ (Hans Krailsheimer)
            1. @@hotti:

              nuqneH

              Aah, meine Idee hat sich also rumgesprochen, obwohl ich wegen diese Idee damals scharf angegriffen wurde ;)

              Bis du einen Archiv-Link als Beleg bringst, lege ich das mal unter heiße-Hotti-Luft ab.

              Das kannst Du selber suchen im Archiv 2014.

              Du hast hier eine Behauptung in den Raum geworfen, für die die Beweislast bei dir liegt. Bis dahin: heiße Hotti-Luft. (Wie auch immer ChrisB die ablegen will?)

              Anstelle zu mobben prüf mal besser nach, ob das überhaupt archiviert wurde. Denn das kann ich leider gar nicht prüfen.

              Hilfreiche Stichworte habe ich genannt.

              Und jetzt Schluss mit dem Kindergarten, ist ja schlimmer als im Rathaus von [gefiltert] ;)

          2. Hakuna matata!

            Das kannst Du selber suchen im Archiv 2014. Es ging im weiteren Sinne um Strukturierte Daten in einem HTTP-Request wobei ich damals das class-Attribute zum Gruppieren vorgeschlagen habe, sofern der Request nur mit Ajax rausgeht.

            Ich erinnere mich, damals ging es darum, dass du mit den bestehenden Möglichkeiten über die Kodierung von html-Formularen unzufrieden warst. Daraufhin hast du dir kurzerhand einen eigenen Kodierungsalgorithmus überlegt. Ich habe dir damals vorgeschlagen, dass du das name-Attribut anstelle des class-Attributs für die Kodierung deiner Schlüssel benutzt.

            --
            “All right, then, I'll go to hell.” – Huck Finn
          3. Hi,

            Bis du einen Archiv-Link als Beleg bringst, lege ich das mal unter heiße-Hotti-Luft ab.

            Das kannst Du selber suchen im Archiv 2014.

            Wusste ich’s doch – heiße Luft …

            Abstrakt gesehen ist nämlich jede Idee immer auch eine gute Idee.

            Nein, überhaupt wieder anzufangen, mit dir zu diskutieren, war keine.

            MfG ChrisB

            --
            Autocomplete has spoiled me to a point where it happens every so often that I encounter a CAPTCHA, and I just type in the first character … and then wait for the rest of the code to be automatically suggested :/
  3. Hi,

    wobei mich jetzt besonders der Teil 'tid' hieraus interessiert, denn dieser Part ist in allen Formularfeldern einer Zeile identisch. Je Zeile ändert sie 'tid', aber innerhalb einer Zeile bleibt er identisch. Das alle IDs innerhalb der Tabelle eindeutig sind, ist klar.

    Meine Frage: Wenn ich z.b. die Formularfelder einer Zeile auf 'readonly' stellen möchte, gibt es dann einen clevereren Trick, dies zu tun, als sämtliche IDs auf das Vorhandensein der entsprechenden 'tid' zu überprüfen? Oder anders ausgedrückt: Gibt es in Jquery einen Selektor, der das kann?

    Die betroffene Zeile (tr) selektieren und deren input/textarea/button/...-Nachfahren.

    Also sowas wie

    tr.zeile_tid input
    oder
    tr#zeile_tid input

    cu,
    Andreas

    --
    Warum nennt sich Andreas hier MudGuard?
    O o ostern ...
    Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.