Spider: Button submit Funktion auf javascript verlagern

Hallo Leute

Brauche dringend HILFE!!!!!!!!!!!!!!

Ich möchte unbedingt das SENDEN von Formular verhindern, wenn Java deaktiviert ist.

Momentan ist es so, dass wenn Java deaktiviert ist, wird das Formular mit dem Button "Senden"
<input type="submit" name="SENDEN_Volks" value="SENDEN">
versendet, ohne, dass die Pflichtfelder überprüft wurden.

Das habe ich probiert so zu lösen.

Script
<SCRIPT LANGUAGE="JavaScript">
function Senden() {
document.Formular_MFT_Olympisch.submit();
}
</script>

Button "Senden"
<input type="button" name="SENDEN_Olymp" value="SENDEN" onClick="Senden()">

Jetzt hab ich zwar erreicht, dass das Formular nicht mehr versendet wird, wenn Java deaktiviert ist, aber....

Jetzt wird die Funktion onSubmit umgangen und die Pflichtfelder werden nicht mehr geprüft. Wäre euch für eine schnelle Antwort sehr dankbar.

P.S.
Erste Zeile Pflichtfelderabfrage
function Formular(form) {

Form Tag
            <form name="Formular" enctype="multipart/form-data" action="../scripts/formular.php" method="post" onSubmit="return Formular(this)">

Danke vielmals im Voraus

  1. @@Spider:

    nuqneH

    Brauche dringend HILFE!!!!!!!!!!!!!!

    Schrei bitte nicht so.

    “‘Multiple exclamation marks,’ he went on, shaking his head, ‘are a sure sign of a diseased mind.’” (Terry Pratchett in “Eric”)

    Ich möchte unbedingt das SENDEN von Formular verhindern, wenn Java deaktiviert ist.

    Nei-en.

    Momentan ist es so, dass wenn Java deaktiviert ist, wird das Formular mit dem Button "Senden"
    <input type="submit" name="SENDEN_Volks" value="SENDEN">
    versendet

    Warum verwendest du überhaupt einen Submit-Button, wenn du das Formular nicht abschicken willst?

    Der Typ eines Buttons lässt sich mit JavaScript ändern. Oder der Button erst mit JavaScript einblenden. Oder das ganze Forumular, das ohne JavaScript ja sinnlos ist.

    Vielleicht solltest du aber dein Ansinnen nochmals überdenken und das Forumular auch ohne JavaScript benutzbar machen.

    ohne, dass die Pflichtfelder überprüft wurden.

    Für Pflichtfelder gibt es in HTML5 das Attribut @required. Moderne Browser schicken ein Formular nicht eher ab bis alle Pflichtfelder ausgefüllt sind.

    Als reines HTML, JavaScript ist überhaupt nicht erforderlich.

    Ob es für Nutzer mit alten Browsern noch sinnvoll ist, eine JavaScript-Lösung zu implementieren, muss überdacht werden. Eine serverseitige Überprüfung der Nutzereingaben wird man ohnehin machen müssen.

    <SCRIPT LANGUAGE="JavaScript">

    Das @language-Attribut war schon immer sinnlos. Weg damit! In HTML-Versionen vor HTML5 ist allerdings @type="text/javascript" Pflicht.

    Qapla'

    --
    Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
    (Mark Twain)
    1. Ganz ehrlich... Die Kommentare hätten Sie sich lieber sparen können, sind nicht wirklich hilfreich.

      Da gibt es sicherlich bessere Möglichkeiten sich zu profilieren. Ich würd mal nach googeln.

      Bitte um ernsthafte Hilfe! Danke

      1. @@Spider:

        nuqneH

        Ganz ehrlich... Die Kommentare hätten Sie sich lieber sparen können,

        Offensichtlich.

        Das liegt aber nicht an meine Kommentaren, sondern an demjenigen, der sie nicht verstehen will. Oder kann.

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
      2. Ganz ehrlich... Die Kommentare hätten Sie sich lieber sparen können, sind nicht wirklich hilfreich.

        Da gibt es sicherlich bessere Möglichkeiten sich zu profilieren. Ich würd mal nach googeln.

        Bitte um ernsthafte Hilfe! Danke

        Junge... wenn du nicht auf Gunnar hörst ist das so als ob du lieber Fußball guckst als mit Gott zu reden. Ich lese hier schon seid Jahren mit und hab nicht mal einen Rechtschreibfehler bei ihm gefunden!

        Gruß
        Gunnar Verehrer der ersten Stunde
        T-Rex

        1. Hallo,

          Ich lese hier schon seid Jahren mit und hab nicht mal einen Rechtschreibfehler bei ihm [Gunnar] gefunden!

          komisch, dabei unterlaufen ihm die in letzter Zeit häufiger. Vor allem offensichtliche Tippfehler wie vergessene Buchstaben oder sich mal um eine Tastenbreite zu verirren.

          Aber was soll's, nobody is perfect.

          Ciao,
           Martin

          --
          My name is Nobody ;-)
          Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        2. Wow.

          Ein Gunnar Fanboi! :) Dass ich das mal erleben darf.

          Aber im Ernst: Gunnar hat hier eine umfassende Antwort gegeben. Ohne Seitenhiebe oder uebertriebene Heiligsprechung neuer Standards die nur von 10% der Browser unterstuetzt werden. Wo das Anlass zur Kritik gibt, weiss hier nichtmal ich. Stand eigentlich alles drin, was gefragt wurde. Plus der ueblichen Dreingaben.

          --
          Signaturen sind blöd!
        3. Hi,

          Junge... wenn du nicht auf Gunnar hörst ist das so als ob du lieber Fußball guckst als mit Gott zu reden. Ich lese hier schon seid Jahren mit und hab nicht mal einen Rechtschreibfehler bei ihm gefunden!

          Blindfisch! In seinem Posting https://forum.selfhtml.org/?t=209078&m=1422566 ist z.B. ein Rechtschreibfehler ;-) drin, da hat er "als" mit "bi" statt "al" geschrieben ("nicht eher bis" statt korrekt "nicht eher als").

          cu,
          Andreas

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

            nuqneH

            da hat er "als" mit "bi" statt "al" geschrieben ("nicht eher bis" statt korrekt "nicht eher als").

            Ey Alter, dit is doch keen Fehla. Dit is Berliner Jrammatik!

            Qapla'

            --
            Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
            (Mark Twain)
          2. Das war ein Fakepost, schon mal der Gedanke gekommen?
            Gunnar ist unantastbar!

            Gruß
            Hält jeden der weiß dass es keine Götter gibt für einen Götterboten
            T-Rex

            1. Hi,

              Das war ein Fakepost, schon mal der Gedanke gekommen?
              Gunnar ist unantastbar!

              ich will ja auch gar nicht an ihm rumfummeln ...

              cu,
              Andreas

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

                nuqneH

                Gunnar ist unantastbar!

                ich will ja auch gar nicht an ihm rumfummeln ...

                Ein Liebhaber reicht mir auch.

                Qapla'

                --
                Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
                (Mark Twain)
    2. Für Pflichtfelder gibt es in HTML5 das Attribut @required. Moderne Browser schicken ein Formular nicht eher ab bis alle Pflichtfelder ausgefüllt sind.

      Gibt es eine Möglichkeit die Meldung für das Require grafisch und vom Text her an zu passen?

      achja hier kann man sich das ganze in aktion ansehen

      Gruß
      Gunnar Lover
      T-Rex

      1. @@T-Rex:

        nuqneH

        Gibt es eine Möglichkeit die Meldung für das Require grafisch und vom Text her an zu passen?

        Nicht, dass ich wüsste. Und ich finde das auch nicht schlimm.

        ♥ ;-)

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
    3. Für Pflichtfelder gibt es in HTML5 das Attribut @required. Moderne Browser schicken ein Formular nicht eher ab bis alle Pflichtfelder ausgefüllt sind.

      Kannte ich noch nicht, gleich eingebaut. Und tatsächlich (FF 10), das required Feld wird fokussiert mit der Bemerkung "Bitte füllen Sie dieses Feld aus".

      Woher kommt dieser Text? Mein Formular ist englisch ...

      Gruß, Gast

      1. @@Gast:

        nuqneH

        Woher kommt dieser Text? Mein Formular ist englisch ...

        Vom Browser. Deiner hat ein deutsches UI.

        Macht ja auch Sinn, dem Nutzer die Meldungen in der Sprache seines System zu geben. (Es sei denn, er benutzt gerade ein fremdes System.)

        Qapla'

        --
        Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
        (Mark Twain)
    4. Für Pflichtfelder gibt es in HTML5 das Attribut @required. Moderne Browser schicken ein Formular nicht eher ab bis alle Pflichtfelder ausgefüllt sind.

      Als reines HTML, JavaScript ist überhaupt nicht erforderlich.

      Ob es für Nutzer mit alten Browsern noch sinnvoll ist, eine JavaScript-Lösung zu implementieren, muss überdacht werden. Eine serverseitige Überprüfung der Nutzereingaben wird man ohnehin machen müssen.

      Selbst ob es für Nutzer aktueller Browser sinnvoll ist, auf HTML5-Attribute zu setzen, muss überdacht werden. Für grobschlachtige Formulare mag man mit den Möglichkeiten auskommen, sobald aber diffizilere Meldungen geworfen werden sollen, _muss_ man etwas bauen. Wie soll man das gestalten? Man möchte dem User eine homogene Benutzerführung bieten und keinen wilden Mischmasch aus nativem und selbstgebautem.

      Eine serverseitige Überprüfung der Nutzereingaben wird man ohnehin machen müssen.

      ACK

  2. Hallo Leute

    Brauche dringend HILFE!!!!!!!!!!!!!!

    Ich möchte unbedingt das SENDEN von Formular verhindern, wenn Java deaktiviert ist.

    Momentan ist es so, dass wenn Java deaktiviert ist, wird das Formular mit dem Button "Senden"
    <input type="submit" name="SENDEN_Volks" value="SENDEN">
    versendet, ohne, dass die Pflichtfelder überprüft wurden.

    Das habe ich probiert so zu lösen.

    Script
    <SCRIPT LANGUAGE="JavaScript">
    function Senden() {
    document.Formular_MFT_Olympisch.submit();
    }
    </script>

    Button "Senden"
    <input type="button" name="SENDEN_Olymp" value="SENDEN" onClick="Senden()">

    Jetzt hab ich zwar erreicht, dass das Formular nicht mehr versendet wird, wenn Java deaktiviert ist, aber....

    Jetzt wird die Funktion onSubmit umgangen und die Pflichtfelder werden nicht mehr geprüft. Wäre euch für eine schnelle Antwort sehr dankbar.

    P.S.
    Erste Zeile Pflichtfelderabfrage
    function Formular(form) {

    Form Tag
                <form name="Formular" enctype="multipart/form-data" action="../scripts/formular.php" method="post" onSubmit="return Formular(this)">

    Danke vielmals im Voraus

    Wieso führst du deine Überprüfungen nicht einfach in der Senden() Methode aus?

    Alternativ kannst du onSubmit() auch als Funktion aufrufen (ich habs jetzt selbst nicht getestet, aber hab was ähnliches mal mit einem anderen Event selbst benötigt)

    PS: Den Vorschlag von Gunnar den Submit Button per Javascript einzublenden, ist keine Möglichkeit? Dann könnte man theoretisch ja auch anstatt des Submit Buttons einen Text anzeigen, das Javascript aktiviert sein muss.

  3. Hallo,

    Du musst in der Prüffunktion false zurückgeben und diesen Wert in onsubmit ebenfalls zurückgeben:

    <form onsubmit="return pruefung(this)">  
    <p>  
    <input name="feld">  
    <input type="submit">  
    </p>  
    </form>
    
    function pruefung (form) {  
      if (form.elements.feld.value === '') {  
        alert('Bitte Feld ausfüllen.');  
        form.elements.feld.focus();  
        return false;  
      }  
    }
    

    Unterdrücken der Standardaktion eines Ereignisses (die Standardaktion von submit ist das Absenden des Formulars).

    Mathias

    1. Hi,

      function pruefung (form) {

      if (form.elements.feld.value === '') {
          alert('Bitte Feld ausfüllen.');
          form.elements.feld.focus();
          return false;
        }
      }

        
      M.E. fehlt da noch ein return true; im Erfolgsfall.  
      Oder wird immer true benutzt, falls der Returnwert vom Aufrufer benutzt, aber von der Funktion nicht gesetzt wurde?  
      (selbst wenn - ich würde es trotzdem setzen, für mich sieht das "falsch" aus, wenn eine Funktion mal einen Wert zurückliefert und mal nicht.  
        
      cu,  
      Andreas
      
      -- 
      [Warum nennt sich Andreas hier MudGuard?](http://MudGuard.de/)  
      [O o ostern ...](http://ostereier.andreas-waechter.de/)  
        
      Fachfragen per Mail sind frech, werden ignoriert. Das Forum existiert.  
      
      
      1. Hallo,

        function pruefung (form) {

        if (form.elements.feld.value === '') {
            alert('Bitte Feld ausfüllen.');
            form.elements.feld.focus();
            return false;
          }
        }

          
        
        > M.E. fehlt da noch ein return true; im Erfolgsfall.  
          
        ja, eigentlich schon - und sei es nur der Ordnung halber.  
          
        
        > Oder wird immer true benutzt, falls der Returnwert vom Aufrufer benutzt, aber von der Funktion nicht gesetzt wurde?  
          
        Das Funktionsergebnis wäre hier im Erfolgsfall undefined, was aber erfahrungsgemäß denselben Effekt hat wie true. Vermutlich ist das absichtlich so implementiert, um den häufigen Fall abzudecken, dass Eventhandler ganz ohne Rückgabewert formuliert werden.  
          
        
        > (selbst wenn - ich würde es trotzdem setzen, für mich sieht das "falsch" aus, wenn eine Funktion mal einen Wert zurückliefert und mal nicht.  
          
        ACK, sehe ich auch so.  
          
        Ciao,  
         Martin  
        
        -- 
        Die letzten Worte des Polizisten:  
        Ich hab mitgezählt, Leute: Sechs Schuss, jetzt hat er keine Munition mehr!  
        Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
        
        1. Ich sehe ja ein, dass es andere Möglichkeiten für Abfrage gibt als Javascript, aber ihr müsst auch mal überlegen, dass diese Seite oft von Anfängern genutzt wird und da hilft kein Fachchinesisch oder keine unnötige Kommentare wirklich nicht weiter.

          Bei mir ist es so, dass es unbedingt zu einer Prüfung kommen muss. Und wenn ein User Java deaktiviert, dann kann er eben die Seite nicht nutzen.

          Lange Rede, kurzer Sinn, hier die Lösung.

          Eine Start-Seite mit dem Hinweis, dass Java vor ab aktiviert werden muss (nur falls Java deaktiviert ist) um eure Webseite zu nutzen, würde erst mal weiter Helfen.

          Also eure index.html "eure Start HTML" umbenennt ihr in z.B. startseite.html

          Dann Macht ihr euch eine index.html mit dem folgenden Quellcode

          <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
          <html xmlns="http://www.w3.org/1999/xhtml">
          <head>
          <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
          <title>Java Prüfung</title>
          </head>
          <!-- hier wird ein Script für Weiteleitung auf eure Startseite eingesetzt -->
          <script LANGUAGE="JavaScript">
              top.location.href='startseite.html'
          </script>
          </head>
          <body>
           <div align="center">
          Aktivieren Sie bitte JavaScript in Ihren Browsereinstellungen!
           </div>
          </body>
          </html>

          Somit wird diese Seite nur angezeigt, wenn Java deaktiviert ist, ansonsten werden eure Besucher direkt weiter geleitet und kriegen nichts davon mit.

          Und jetzt zum Button

          Fügt euch folgenden Javascript in eure HTML ein.

          <!-- hier wird ein Script für Senden eingesetzt -->
          <SCRIPT LANGUAGE="JavaScript">
          function Senden() {
           var f = formular_name_pruefen (document.Anmeldung);
           if (f) document.formular_name_pruefen.submit();
          }
          </script>

          Hier der form Tag dazu, für besseres Verständniss

          <form name="Anmeldung" action="../scripts/Anfrage.php" method="post" onSubmit="return formular_name_pruefen(this)">

          Euren SENDEN-Button müsst ihr umbenennen "Wert"
          von type="submit" in type="Button" dann fügt ihr noch die Funktion onClick="Senden();" ein und voila es wird nur versendet, wenn Java aktiviert.

          Viel Spaß beim basteln

          1. Hallo Spider,

            Ich sehe ja ein, dass es andere Möglichkeiten für Abfrage gibt als Javascript, aber ihr müsst auch mal überlegen, dass diese Seite oft von Anfängern genutzt wird und da hilft kein Fachchinesisch oder keine unnötige Kommentare wirklich nicht weiter.

            sorry - in der Antwort von molily sehe ich weder Fachchinesisch noch unnötige Kommentare.
            Hinweise auf bessere Lösungswege sind nie verkehrt, schließlich ist das Archiv durchsuchbar und in Suchmaschinen auffindbar.

            Und wenn ein User Java deaktiviert, dann kann er eben die Seite nicht nutzen.

            Bitte verstehe doch, dass die Programmiersprache Java eine ganz andere Programmiersprache ist als Javascript. Du nutzt Javascript.

            Freundliche Grüße

            Vinzenz

            1. Bitte um besseres Verständniss...

              Bitte verstehe doch, dass die Programmiersprache Java eine ganz andere Programmiersprache ist als Javascript. Du nutzt Javascript.

              Javascript ist doch das was mit Java Sprache erstellt wird?

              1. Hallo,

                Bitte um besseres Verständniss...

                gern, aber fang bitte damit an, das überschüssige 's' wegzulassen.

                Bitte verstehe doch, dass die Programmiersprache Java eine ganz andere Programmiersprache ist als Javascript. Du nutzt Javascript.
                Javascript ist doch das was mit Java Sprache erstellt wird?

                Keineswegs. Es handelt sich bei Java und Javascript um zwei völlig unterschiedliche Sprachen, die außer einem Teil des Namens nicht viel gemeinsam haben.

                Ciao,
                 Martin

                --
                Soziologen sind nützlich, aber keiner will sie haben.
                Bei Informatikern ist es gerade umgekehrt.
                Selfcode: fo:) ch:{ rl:| br:< n4:( ie:| mo:| va:) de:] zu:) fl:{ ss:) ls:µ js:(
              2. Hallo,

                Bitte um besseres Verständniss...

                ich hatte Dir doch extra die beiden Sprachen in Wikipedia verlinkt:

                Bitte verstehe doch, dass die Programmiersprache Java eine ganz andere Programmiersprache ist als Javascript. Du nutzt Javascript.

                Javascript ist doch das was mit Java Sprache erstellt wird?

                Nein. Steht in den beiden Artikeln :-)

                Freundliche Grüße

                Vinzenz

                1. ich hatte Dir doch extra die beiden Sprachen in Wikipedia verlinkt:

                  Vielen Dank
                  Wer lesen kann... ;-)

      2. Hallo,

        M.E. fehlt da noch ein return true; im Erfolgsfall.
        Oder wird immer true benutzt, falls der Returnwert vom Aufrufer benutzt, aber von der Funktion nicht gesetzt wurde?

        Nur wenn der Rückgabewert === false ist, wird die Standardaktion abgebrochen, alle anderen Werte, auch undefined, tun nichts.

        Der Konsistenz halber kann man natürlich trotzdem return true; notieren.

        Mathias

  4. Ich möchte unbedingt das SENDEN von Formular verhindern, wenn Java deaktiviert ist.

    Merkwürdig formuliert. Unbedingt (ohne Bedingung) kann man ein Formular verhindern, indem man es nicht einbaut. Aber nach dem Komma kommt doch eine Bedingung: wenn Java deaktiviert ist. Du meinst Javascript?
    Das bedeutet, dass bei deaktiviertem Javascript das gesamte Formular nicht abgeschickt wird und die Einträge vergeblich sind. Im Klartext: User-Verarsche. Dann solltest du es auch verstecken mit display:none und per Javascript auf display:block (oder wasimmer) wiederholen.

    Momentan ist es so, dass wenn Java deaktiviert ist, wird das Formular mit dem Button "Senden"
    <input type="submit" name="SENDEN_Volks" value="SENDEN">
    versendet, ohne, dass die Pflichtfelder überprüft wurden.

    Genau. Wie sollte auch die Überprüfung ohne Javascript funktionieren?

    Gruß, Gast

    1. @@Gast:

      nuqneH

      Das bedeutet, dass bei deaktiviertem Javascript das gesamte Formular nicht abgeschickt wird und die Einträge vergeblich sind. Im Klartext: User-Verarsche. Dann solltest du es auch verstecken mit display:none und per Javascript auf display:block (oder wasimmer) wiederholen.

      Sag ich doch. Oder das Formular erst per JavaScript generieren, dann ist man nicht von CSS abhängig.

      Genau. Wie sollte auch die Überprüfung ohne Javascript funktionieren?

      Mit HTML5. Sag ich doch.

      Qapla'

      --
      Gut sein ist edel. Andere lehren, gut zu sein, ist noch edler. Und einfacher.
      (Mark Twain)