tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von javaDeveloper2011
  • 1 Beitrag von Martin Honnen
ERLEDIGT
NEIN
ANTWORTEN
10
ZUGRIFFE
514
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    ildottore ildottore ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    19
    Hallo Leute!

    Ich bastle gerade ein umfangreiches Formular mit relativ vielen Radiobuttons.

    Bei 3 Auswahlen die besonders wichichtig sind kommt eine Alert Message.
    Bei einigen anderen soll auch eine Benachrichtigung kommen, aber ich möchte dies nicht mit Alert umsetzen, da es sonst für den User sehr nervig wird.

    Ich hab da an so eine Art einblendung neben den Radiobuttons gedacht, die auftaucht, wenn diese angeklickt wird.

    Mit stehen HTML/JavaScript/CSS zur Verfügung. Mit JQuery bin ich noch nicht vertaut.

    Das 2. was ich gerne im Script hätte, wäre eine Prozentbalken der sich je nachdem wieviele Checkboxen oder Felder man schon angeklickt/ausgefüllt hat füllt.

    Kann man das mit den Mittel die mir zur Verfügung stehen umsetzen?
    Wenn ja - wie mach ich es?

    Danke schon mal
     

  2. #2
    Avatar von javaDeveloper2011
    javaDeveloper2011 javaDeveloper2011 ist offline Mitglied Brokat
    Registriert seit
    Feb 2011
    Beiträge
    445
    Blog-Einträge
    5
    Hi,

    füge einfach neben den radiobuttens ein SPAN ein und gieb ihm eine ID.
    Sprich das dann per JS über die ID an und setze innerHTML.
    Ganz oben im Scipt sollten dann wieder all innerHTML auf "" gesetzt werden, damit keine alten Fehlermeldungen bestehen bleiben.

    Ne Progress-Bar ist auch nicht so schwahr:

    einfache Variante: ein andersfarbiges div im anderen.
    Dann per JS die style.width des inneren DIV prozentual zur festen des äußeren DIV setzen. (Je nach dem wie viel schon richtig ausgefüllt wurde)

    schönere Variante:
    jQuery-ProgressBar

    Gruß javaDeveloper2011
     

  3. #3
    ildottore ildottore ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    19
    Hi!

    Danke für die schnelle Antwort.

    Ich bin schon beim herumprobieren

    Jetzt tut sich aber gleich zu Beginn ein Problem auf.

    Mein Radio Button hat eine ID und der SPAN Tag.
    Wie spreche ich nun beide Elemente in JS korrekt an?

    Wenn ich getElementById auf den SPAN Tag mache, dann erscheint der Hinweis egal welchen Radiobutton man drückt.

    lg
     

  4. #4
    Avatar von javaDeveloper2011
    javaDeveloper2011 javaDeveloper2011 ist offline Mitglied Brokat
    Registriert seit
    Feb 2011
    Beiträge
    445
    Blog-Einträge
    5
    Hi,

    du brauchst natürlich für jeden Radiobutton ein eigenes Span bzw. für jeden Ort, an dem eventuell ne Fehlermeldung erscheinen soll!
    IDs müssen grundsätzlich dokument-weit einzigartig sein.
     

  5. #5
    ildottore ildottore ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    19
    Hallo!


    Nachdem ich nicht ganz zusammenkomme poste ich hier mal ein Beispiel.
    Ziel wäre, dass wenn man auf NEIN bei der 2. Frage klickt eine Meldung daneben erscheint.

    Wenn dann auf JA geklickt wird soll die Meldung wieder verschwinden.

    Hier der Code:

    HTML-Code:
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
    <title>Uebung</title>
    
    </head>
    <script type="text/javascript">
    
    function show(divid) {
    obj = document.getElementById(divid);
    obj.style.display = 'block';}
     
    function hide(divid) {obj =
    document.getElementById(divid);
    obj.style.display = 'none';
    }
    
    function ghost() {
    hide('checkbutton');
    }
    
    function checkme() {
    
    check = 1;
    
    
    if (document.getElementById('italytrue').checked == false && document.getElementById('italyfalse').checked == false) { check = 0; }
    
    if (document.getElementById('bierTRUE').checked == false && document.getElementById('bierFALSE').checked == false) { check = 0; }
    
    
      if (check==1) {
                            show('checkbutton');
                            }
                            else { hide('checkbutton');
    						 }
    }
    
    
    function ausgabe() {
    	
    	
    if (document.getElementById('italytrue').checked == true) var urlaub = "Du bist also schon mal in Italien gewesen.";
    if (document.getElementById('italyfalse').checked == true) var urlaub = "Fahr doch mal hin!";
    
    if (document.getElementById('bierTRUE').checked == true) var getraenk = "Ausgezeichnet!";
    if (document.getElementById('bierFALSE').checked == true) var getraenk = "Schade...";
    
    var text = "Deine Antwort:" + "<p>" + urlaub + "<p>" + getraenk;	
    
    document.write(text);
    }
    
    
    </script>
    
    <body onload="ghost();">
    
    <p>&nbsp;</p>
    <table width="839" height="176" border="0">
    
      <form id="TEST" name="TEST" method="post" action="">
         <tr>
           <td width="303" height="40" class="beschriftung">Warst du schon mal in Italien?</td>
           <td width="174"><span class="beschriftung">
            <input type="radio" name="Land" id="italytrue" value="italytrue" onclick="javascript:checkme()" />
             ja
               <input type="radio" name="Land" id="italyfalse" value="italyfalse" onclick="javascript:checkme()" />
               nein</label>
        
        </td>
           <td width="348">&nbsp;</td>
         </tr>
         <tr>
           <td height="59" class="beschriftung">Trinkst du gerne Bier?</td>
           <td class="beschriftung"><input type="radio" name="drink" id="bierTRUE" value="bierTRUE" onclick="javascript:checkme()" />
             ja
             <input type="radio" name="drink" id="bierFALSE" value="bierFALSE" onclick="javascript:checkme()" />
             nein</td>
           <td>&nbsp;</td>
         </tr>
         <tr>
           <td height="54"><input type="submit" name="Senden" id="checkbutton" onclick="ausgabe();" value="Senden" /></td>
         </tr>
      </form>
    
    </table>
    </body>
    </html>
    

    Danke für eure Unterstützung.
     

  6. #6
    Avatar von javaDeveloper2011
    javaDeveloper2011 javaDeveloper2011 ist offline Mitglied Brokat
    Registriert seit
    Feb 2011
    Beiträge
    445
    Blog-Einträge
    5
    Hi,

    was hältst du davon:

    Code :
    1
    2
    3
    4
    5
    6
    7
    
    <tr>
        <td height="59" class="beschriftung">Trinkst du gerne Bier?</td>
        <td class="beschriftung">
            <input type="radio" name="drink" id="bierTRUE" value="bierTRUE" onclick="checkme(); document.getElementById('message').innerHTML = 'Ich bin eine Meldung!';">ja
            <input type="radio" name="drink" id="bierFALSE" value="bierFALSE" onclick="checkme(); document.getElementById('message').innerHTML = '';" />nein</td>
        <td class="beschriftung" id="message"></td>
    </tr>
    ildottore bedankt sich. 

  7. #7
    ildottore ildottore ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    19
    Hello

    Jap, so hats funktionert.
    Besten Dank!
    Das es doch so einfach geht, hätt ich nicht gedacht.
    Meine ersten Ansätze waren da viel zu kompliziert...
     

  8. #8
    ildottore ildottore ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    19
    Hello again


    Nun probier ich die Fortschrittsanzeige in meinem Formular.

    Ich hab nun 2 DIV Container erstellt.
    Einen für den Hintergrund (weiss) und einen mit Farbe, der den Fortschritt anzeigt.

    Was mit jetzt noch fehlt wäre eine Funktion, welche den "width" Wert ändert, sobald man einen Radiobutton anklickt bzw. etwas in ein Feld schreibt.
    In Summe sind es 13 Elemente die ich in meinem Formular habe.

    Ich hätte mir gedacht, dass man bei jedem Element sowas wie onClick=erhöhe width um 7,70%


    Ist sowas mit HTML/JS/CSS möglich, oder bedingt das jQuery?


    Danke schon mal!

    lg
     

  9. #9
    ildottore ildottore ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    19
    Update

    Aktueller Stand:

    Wenn das Formular aufgerufen wird, dann ist der Balken leer (0%).
    Wenn man den ersten Radiobutton anklickt baut sich der Statusbalken auf 7,7% auf.

    - soweit passt es mal

    Klickt man einen weiteren Radiobutton an passiert nichts.

    meine Formularelemente haben folgenden Eventhandler:

    HTML-Code:
    onClick="javascript:checkme(); javascript:progressbar(7.7);
    Die Funktion dazu schaut so aus:

    HTML-Code:
    function progressbar(percent) {
    
    document.getElementById('progress').style.width = percent+"%";	
    	
    }

    Wie füge ich nun eine Addition ein, dass 7.7% + 7.7% etc... gerechnet wird, je nachdem welche Radiobuttons angeklickt werden?



    Update

    Ich hab jetzt mal die Werte in den Klammern geändert bzw. bei jedem Element erhöht.
    Wenn man in der Korrekten Reihenfolge durchklickt kommt man zum Ergebnis.

    Schöner würd ichs aber finden, wenn die funktion die werte addiert.
    Geändert von ildottore (27.12.11 um 11:59 Uhr)
     

  10. #10
    Martin Honnen Martin Honnen ist offline Mitglied Bronze
    Registriert seit
    Dec 2011
    Beiträge
    30
    Definiere eine Variable
    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    
    <html>
    <head>
    ...
    <script type="text/javascript">
    var progress = 0;
     
    function progressbar(percent) {
      progress += percent;
      document.getElementById('progress').style.width = progress + '%';
    }
    </script>
    ...
    ildottore bedankt sich. 

  11. #11
    ildottore ildottore ist offline Mitglied
    Registriert seit
    Sep 2011
    Beiträge
    19
    Hallo!


    Ich habe es nun mit dem Code von Martin versucht.

    Dabei sind ein paar Probleme aufgetaucht:

    Irrt man sich in einer Radio-Button Gruppe und selektiert eine andere Checkbox, wird dies in meinem Fortschrittsbalken 2-fach gewertet.

    Schreibt man etwas in ein Textfeld wird dies im Balken korrekt angezeigt. -> löscht man den Inhalt wieder, dann geht der Balken jedoch nicht zurück.

    Dies war bei meiner "starren" Variante nicht so.

    Was kann ich dagegen tun?
     

Ähnliche Themen

  1. Falscheingabe in einem Jtextfield abfangen
    Von subezro im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 2
    Letzter Beitrag: 01.09.10, 16:45
  2. Antworten: 0
    Letzter Beitrag: 25.12.09, 16:00
  3. Excel Drop Down Feld Falscheingabe verhindern
    Von Axor im Forum Office-Anwendungen
    Antworten: 2
    Letzter Beitrag: 10.08.07, 09:51
  4. Word: Hinweise am Rand?
    Von gorim im Forum Office-Anwendungen
    Antworten: 4
    Letzter Beitrag: 18.12.06, 09:45
  5. unsinnige Hinweise auf Netiquette ?!
    Von ts_s im Forum Smalltalk
    Antworten: 4
    Letzter Beitrag: 26.04.05, 11:54