Avatar billede syswatch Novice
23. marts 2009 - 13:20 Der er 1 kommentar og
1 løsning

Disable submit knap ved valideringsfejl

Hejsa..
Jeg bruger et AJAX/JavaScript til at validere en form, og i den forbindelse vil jeg gerne ha at submit knappen bliver disbaled hvis et af felterne ikke validere rigtigt.
Jeg er ikke nogen javascript haj, og har derfor lidt problemer med at implementere denne funktion. Er der en der kan hjælpe mig ?

JavaScript til form validering:
<script language="javascript" type="text/javascript" src="jquery.js"></script>
    <script language="javascript" type="text/javascript">
    function ValidateInput(input)
    {
        var id = input.id;
        var field = input.name;
        var value = input.value;
       
        $("#" + id).fadeOut();
       
        $("#" + id).removeClass('goodinput');
        $("#" + id).removeClass('badinput');
       
        $.post("validate.php", { inputdata: value, inputfield: field },
   
        function(data)
        {
            if(data == 1)
                $("#" + id).addClass('goodinput');
            else
                $("#" + id).addClass('badinput');   
               
            $("#" + id).fadeIn();
          });
    }

    $(document).ready(function()
    {
        var RequiredFields = new Array();
        RequiredFields[0] = "fornavn";
        RequiredFields[1] = "username";
        RequiredFields[2] = "password";
        RequiredFields[3] = "email_address";
   
        for(i=0; i < RequiredFields.length; i++)
        {
            $("#" + RequiredFields[i]).blur(function()
            {
              ValidateInput(this);
            });
        }
    });
    </script>

PHP Script til valideringen:
<?php

$input = strip_tags(trim($_POST['inputdata']));
$field = strip_tags(trim($_POST['inputfield']));

include("dbcon.php");

  if(empty($input)) {
  echo 0;   
  }else{

    if($field == 'username') {
   
    if(empty($input)) {
    echo 0;   
    }else{
    $query = "SELECT * FROM users WHERE username = '$input'";
    $result = mysql_query($query) or die (mysql_error());
    if($row = mysql_fetch_array($result)) {
    echo 0;
    }else{
    echo 1;   
        }
      }
    exit;
    }

if($field == 'email_address') {
   
    if(empty($input)) {
   
        echo 0;   
        }else{
       
            if(eregi("^[_a-z0-9-]+(\.[_a-z0-9-]+)*@[a-z0-9-]+(\.[a-z0-9-]+)*(\.[a-z]{2,3})$", $input)) {
           
                $query = "SELECT * FROM users WHERE email = '$input'";
                $result = mysql_query($query) or die (mysql_error());
       
                    if($row = mysql_fetch_array($result)) {
                    echo 0;
                    }else{
                    echo 1;   
                    }
            }
            else {
            echo 0;
            }
           
        }
    exit;
}
echo 1;
}
?>
Avatar billede olebole Juniormester
23. marts 2009 - 13:56 #1
<ole>

Det hjælper ikke meget at kunne JavaScript, da koden er skrevet i jQuery's proprietære syntaks  =)

/mvh
</bole>
Avatar billede syswatch Novice
16. august 2013 - 11:00 #2
Lukker
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester