CodeForum.chCode ForenJavaScriptThema: problem mit formulartest
Seiten: [1]
AntwortenDrucken
Autor Thema: problem mit formulartest  (Gelesen 906 mal)
Mathi
oft hier
*
Offline Offline

Beiträge: 168



WWW
« am: 24. November 2008, 21:59:05 »
ZitierenZitat


hi @all,
es ist bestimmt nicht viel, aber ich hänge nun schon eine weile an dem problem fest.

ein formulartest, es soll erst die checkbox und dann den prcode testen.
also ich möchte nur einen von beiden fehlern jeweils ausgeben, und da der prcode weiter oben steht soll als erstes da ein fehler kommen, wenn dieser falsch ist.
dannach der fehler für die (agb's), wenn das häkchen nicht gesetzt ist.

die function wird bei onClick aufgerufen:

Code:
onclick="check();return document.returnValue"

Code:
function check()
{

var code = $("#prcode").val();

$.get("ajax/check_promocode.php?code="+code, function(response){


if(document.getElementById('agb').checked == false)
{
errors = "<strong>Sofern Sie unsere Allgemeinen Geschäftsbedingungen nicht akzeptieren, können wir Ihre Bestellung bedauerlicherweise nicht entgegennehmen !!!</strong>";
}

if(response != 'Y')
{
errors = response;
}

if(errors)
{
$("form select").css("visibility","hidden");
$("#pop_container").css("visibility","visible");
$(".titel").html('<strong>INFORMATION</strong>');
$(".fehler").html(errors);

document.returnValue = false;
}else{
document.returnValue = true;
}
});



}

ich weiß nich mehr weiter, hab schon einiges probiert, aber irgendwie geht immer etwas nicht.

hat jemand eine idee?

können auch 2 functionen sein... wie auch immer.

Gruß Mathi
Moderator informieren   Gespeichert
SuperMario
Globaler Moderator
*
Offline Offline

Beiträge: 2497



« Antworten #1 am: 25. November 2008, 01:46:43 »
ZitierenZitat

Zitat
aber irgendwie geht immer etwas nicht.
Sag doch einfach, was genau nicht funktioniert. Der Code sieht doch in Ordnung aus.
Moderator informieren   Gespeichert
Mathi
oft hier
*
Offline Offline

Beiträge: 168



WWW
« Antworten #2 am: 25. November 2008, 13:36:09 »
ZitierenZitat

wie gesagt, ich hatte alles schon einmal, aber so wie es jetzt ist,
gibt es gar keinen fehler aus und das form wird abgesendet trotz fehlern.

nun hab ich als erstes in der function noch ein:

document.MM_returnValue = false;

reingeschrieben.
jetzt geht alles wie es soll, nur eben das absenden logischerweise nicht mehr.

hat jemand eine idee?
« Letzte Änderung: 25. November 2008, 13:43:20 von Mathi » Moderator informieren   Gespeichert
SuperMario
Globaler Moderator
*
Offline Offline

Beiträge: 2497



« Antworten #3 am: 25. November 2008, 16:30:18 »
ZitierenZitat

Probier mal folgende Struktur:
Code:
<script>
function checkForm() {
  var code = $("#prcode").val();

  $.get("ajax/check_promocode.php?code="+code, function(response) {

    if (document.getElementById('agb').checked == false) {
      errors = "<strong>Sofern Sie unsere Allgemeinen Geschäftsbedingungen nicht akzeptieren, können wir Ihre Bestellung bedauerlicherweise nicht entgegennehmen !!!</strong>";
    }

    if (response != 'Y') {
      errors = response;
    }

    if (errors) {
      $("form select").css("visibility","hidden");
      $("#pop_container").css("visibility","visible");
      $(".titel").html('<strong>INFORMATION</strong>');
      $(".fehler").html(errors);

      return false;
    } else {
      return true;
    }
  });
}
</script>

<form onsubmit="return checkForm()" action="..." method="...">
  ....
</form>

D.h. wenn das Formulat abgeschickt wird (Event onsubmit), dann wird checkForm() aufgerufen. Wenn checkForm "false" zurückliefert, dann wird das Formular nicht abgeschickt und bei "true" wird es an den Server geschickt.

Interessant ist auch das "Validation" Plugin für jquery:
http://bassistance.de/jquery-plugins/jquery-plugin-validation/
Mit Demo Page: http://jquery.bassistance.de/validate/demo/
Dort kann man sogar einzelne Felder per AJAX validieren, wie in deinem Beispiel. Der Befehl heisst remote():
http://docs.jquery.com/Plugins/Validation/Methods/remote#url

Für deinen Fall würde das dann irgendwie so aussehen:
Code:
$("#myform").validate({
  rules: {
    agb: { required: true },
    prcode: {
      remote: "ajax/check_promocode.php"
    }
  }
});
Moderator informieren   Gespeichert
Mathi
oft hier
*
Offline Offline

Beiträge: 168



WWW
« Antworten #4 am: 26. November 2008, 17:48:16 »
ZitierenZitat

hallo mario,
danke für die hilfe.

also mit den rückgabewerten ging es auch nicht. das formular wurde einfach immer abgesendet. warum auch immer.
ich habe mir nun so geholfen das ich gleich am anfang der function erstmal 'document.returnValue = false;' ausgebe so das das form nicht gesendet wird.

und am ende wenn keine fehler aufgetreten sind einfach ein 'document.form.submit();'

so geht es erst einmal.

Ich werd mir wenn ich mal Zeit habe das "Validation" Plugin für jquery ansehen.
Eigentlich bin ich kein Freund von Formulartests mit Javascript aber in dieser Seite geht eh nix wenn das ausgeschalten ist.


Vielen Dank erst einmal.
Gruß Mathi
Moderator informieren   Gespeichert
Seiten: [1]
AntwortenDrucken
CodeForum.chCode ForenJavaScriptThema: problem mit formulartest
Gehe zu:  

 

Partner Sites

Werbung

TinyPortal v1.0.5 beta 1© Bloc