Avatar billede kennethv Nybegynder
18. november 2008 - 16:19 Der er 9 kommentarer og
2 løsninger

Popup vindue ved manglende info.

Jeg har brug for en lille detalje til min sumit knap.

Jeg har en radioknap, som aktiver et inputfelt, hvor man så skal skrive noget i. Jeg kunne godt tænke mig popupvindue som fortæller at alle felter ikke er udfyldt når man trykker på sumitknappen.
Avatar billede w13 Novice
18. november 2008 - 16:23 #1
<input type="submit" onclick="alert('Alle felter er ikke udfyldt!');">

Men du må nok beskrive det lidt nærmere og smide din nuværende kode herind, hvis du vil have en løsning, du kan bruge til noget. :P
Avatar billede kennethv Nybegynder
18. november 2008 - 16:32 #2
Ved ikke hvor meget der er behov for, men her er det jeg har:

<?php
include("connect.php");
?>
<html>

<!--

openside("Kalenderlys");
$width_k = 160; $height_k = 400;

echo "<object width=\"".$width_k."\" height=\"".$height_k."\">
<param name=\"movie\" value=\"".IMAGES."kalenderlys.swf\"></param>
<param name=\"wmode\" value=\"transparent\"></param>
<embed src=\"".IMAGES."kalenderlys.swf\" type=\"application/x-shockwave-flash\" wmode=\"transparent\" width=\"".$width_k."\" height=\"".$height_k."\"></embed>
</object>";

closeside();

-->

<head>
<style type="text/css">
  form {}
    fieldset {width: 800px;}
    input {width: 50px;}
    p.TekstElement {position: absolute; left: 560px;}
</style>

<script type="text/javascript">
function actTextbox(act){
  document.getElementById("PC").disabled = !act;
}
</script>

</head>
<body>
<?php
echo "<form action=\"fil.php?id=".$_GET['id']."\" method=\"post\">";
?>

<fieldset>
  <legend style="font-weight: bold; font-size: 40px; color: #000;">
    Fratrædelse af medarbejder
  </legend>

<table border="0" width = 800px>
<tr>
<td><br><Font Size=4>I forbindelse med, at <b><?PHP print $strEmployee; ?></b> fratræder sin stilling d. <b><?PHP echo $strDateOfRetire; ?></b> bedes du udfylde dette skema senest 1 uge før fratrædelsen.</Font><br><br></td>
</tr>

<tr>
  <td>
    <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        Lotus Notes
      </legend>
      <br><Font Size=4>Din medarbejders mailkonto vil være åben 1 måned efter fratrædelse. Derefter slettes den.<br>
        Mails til din medarbejder kan videresendes til en udvalgt person i de efterfølgene 3 måneder.<br><br>
        Mails ønskes videresendt til:</font><input type="checkbox" style="margin-left:348px" onclick="document.getElementById('Lotus').disabled=(this.checked?false:true)"><input type="text" style="margin-left:0px;width:175px" name="v" id="Lotus" disabled="disabled">
      <br><br>
      <Font Size=4><b>HUSK DOG, at få <?PHP echo $strEmployee; ?> til at give andre rettigheder til at læse evt. indkomne mails samt at aktivere Out Of Office med info om fremtidig kontaktadresse - inden fratrædelse. (Læs vejledning om dette på Alround.)</b></font>
    </fieldset><br><br>
  </td>
</tr>

<tr>
  <td>
  <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        Backup af data
      </legend>
      <Font Size=4><p class="TekstElement"><u>Kopi ønskes</u></p>
      <br>Mail database<input type="checkbox" style="margin-left:451px" name="Kopi" id="Kopi">
      <br><br>
      <b>Vi vil dog anbefale at du sammen med <?PHP echo $strEmployee; ?> aftaler hvilke mailhistorik der skal videresendes til dig, da ikke alle informationer er med i kopien.</b></Font>
    </fieldset><br><br>
  </td>
</tr>

<tr>
  <td>
  <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        AS/400
      </legend>
      <br><Font Size=4>Sletning af bruger vil blive udført. Hvem skal eje evt. objekter:</font>
        <input type="checkbox" style="margin-left:97px" onclick="document.getElementById('AS400').disabled=(this.checked?false:true)"><input style="margin-left:0px;width:175px" type="text" name="AS400" id="AS400" disabled="disabled">
    </fieldset><br><br>
  </td>
</tr>

<tr>
  <td>
    <fieldset>
      <legend style="font-weight: bold; font-size: 25px; color: #000;">
        PC
      </legend><br>
      <Font Size=4><?php echo $strEmployee; ?> er bruger af <?php echo $strComputerName; ?>.</font>
      <?php
        if ($strDateOfWarrantyEnded == "")
        {   
            echo "<input type=\"radio\" name=\"art\" style=\"margin-left:175px\" onclick=\"actTextbox(true);\">";
            echo "<input style=\"margin-left:4px;width:175px\" type=\"text\" name=\"PC\" id=\"PC\" disabled=\"disabled\"><br>";
            echo "<br>Retur til IT-afdelingen?</Font>";
            echo "<input type=\"radio\" name=\"art\" checked=\"checked\" style=\"margin-left:409px\" name=\"Internt\" onclick=\"actTextbox(false);\">";
            }
        else
        {
            echo "<br><br><Font Size=4> Da den er udløbet for garanti d. ".$strDateOfWarrantyEnded." vil den ikke kunne bruges til anden medarbejder, og vi beder om at få den retur til IT-afdelingen. Samtidig skal vi bede om at få tilbehør retur også, så som SecureID.<br><br>";
            echo "<b>Vi gør i denne forbindelse opmærksom på, at så længe en PC er registreret til din afdeling, betaler afdelingen licensafgifter til alle programmer, der er installeret.</b>";
        }
      ?>
</fieldset>
  </td>
</tr>

</table>
<br><br><input type="submit" style="margin-left:350px" value="Submit">

</fieldset>
<br><br>

<br><br>

</form>
</body>
</html>
Avatar billede w13 Novice
18. november 2008 - 16:45 #3
Prøv at rette:

<?php
echo "<form action=\"fil.php?id=".$_GET['id']."\" method=\"post\">";
?>

til:

<script type="text/javascript">
function Validate(oForm){
  if (oForm.PC.value == "") {
    alert("Du mangler at udfylde feltet 'PC'!");
    oForm.PC.focus();
    return false;
  }
 
  return true;
}
</script>

<?php
echo "<form action=\"fil.php?id=".$_GET['id']."\" method=\"post\" onsubmit=\"return Validate(this)\">";
?>
Avatar billede kennethv Nybegynder
19. november 2008 - 09:24 #4
Ja, der kommer en popup. Men jeg synes ikke at den kan klare flere felter på en gang. Jeg mener, hvis der er krydset 2 af tager den bare den første og fortæller mig at den første ikke er udfyldt. Når jeg udfylder det, forventer jeg at den ville fortælle mig at den anden ikke er udfyldt, men det gør det ikke. Den "sumitter" bare og udføre det der står i fil.php.
Avatar billede w13 Novice
19. november 2008 - 09:28 #5
Du skal skrive ind i koden, hvilke felter, den skal tjekke.

Vi kan gøre sådan her f.eks.:

<script type="text/javascript">
function Validate(oForm){

  if (oForm.PC.value == "") {
    alert("Du mangler at udfylde feltet 'PC'!");
    oForm.PC.focus();
    return false;
  }

  if (oForm.PC2.value == "") {
    alert("Du mangler at udfylde feltet 'PC2'!");
    oForm.PC2.focus();
    return false;
  }
 
  return true;
}
</script>

Dvs. du indsætter bare delen:

  if (oForm.PC2.value == "") {
    alert("Du mangler at udfylde feltet 'PC2'!");
    oForm.PC2.focus();
    return false;
  }

og retter navnet "PC2" til, så det er det korrekte felt.

Koden kan jo ikke regne ud, hvilke felter der skal udfyldes, så det skal du fortælle den.
Avatar billede kennethv Nybegynder
19. november 2008 - 10:12 #6
Ahh, jeg glemte jo selvfølgelig lige at nævne at det har jeg gjort.

function Validate(oForm)
{
  if (oForm.PC.value == "")
  {
    alert("Du mangler at udfylde feltet 'PC'!");
    oForm.PC.focus();
    return false;
  }
  return true;
}

function Validate(oForm)
{
  if (oForm.AS400.value == "")
  {
    alert("Du mangler at udfylde feltet 'AS400'!");
    oForm.AS400.focus();
    return false;
  }
  return true;
}

function Validate(oForm)
{
  if (oForm.Lotus.value == "")
  {
    alert("Du mangler at udfylde feltet 'Lotus'!");
    oForm.Lotus.focus();
    return false;
  }
  return true;
}
Avatar billede w13 Novice
19. november 2008 - 11:49 #7
Fejlen er bare, at du kun må have function Validate(oForm) én gang, så de forskellige dele skal skrives ind i den sådan her:

function Validate(oForm)
{
  if (oForm.PC.value == "")
  {
    alert("Du mangler at udfylde feltet 'PC'!");
    oForm.PC.focus();
    return false;
  }

  if (oForm.AS400.value == "")
  {
    alert("Du mangler at udfylde feltet 'AS400'!");
    oForm.AS400.focus();
    return false;
  }

  if (oForm.Lotus.value == "")
  {
    alert("Du mangler at udfylde feltet 'Lotus'!");
    oForm.Lotus.focus();
    return false;
  }
  return true;
}
Avatar billede kennethv Nybegynder
19. november 2008 - 12:48 #8
Jeg ved ikke om jeg gør noget forkert, men føler mig lidt dum. :)

Nu har jeg gjort som du siger, men når jeg bare trykker på sumit uden at have gjort nogle af inputboksne aktiv, som jeg gør når jeg trykker på checkboksne, siger den at jeg mangler at udfylde feltet 'PC'. Den besked kommer nu hele tiden. Checker denne funktion bare om der er ligger noget i inputbox og gør den det uanset om den er aktiv eller ej?

<head>
<style type="text/css">
  form {}
    fieldset {width: 800px;}
    input {width: 50px;}
    p.TekstElement {position: absolute; left: 560px;}
</style>

<script type="text/javascript">
function actTextbox(act){
  document.getElementById("PC").disabled = !act;
}

function Validate(oForm){

  if (oForm.PC.value == ""){
    alert("Du mangler at udfylde feltet 'PC'!");
    oForm.PC.focus();
    return false;
  }

  if (oForm.AS400.value == ""){
    alert("Du mangler at udfylde feltet 'AS400'!");
    oForm.AS400.focus();
    return false;
  }

  if (oForm.Lotus.value == ""){
    alert("Du mangler at udfylde feltet 'Lotus'!");
    oForm.Lotus.focus();
    return false;
  }
  return true;
}

</script>
</head>
Avatar billede w13 Novice
19. november 2008 - 13:25 #9
Ja, min kode tager ikke højde for, om felter er disabled. Så skal det være:

<head>
<style type="text/css">
  form {}
    fieldset {width: 800px;}
    input {width: 50px;}
    p.TekstElement {position: absolute; left: 560px;}
</style>

<script type="text/javascript">
function actTextbox(act){
  document.getElementById("PC").disabled = !act;
}

function Validate(oForm){

  if (oForm.PC.value == "" && !oForm.PC.disabled){
    alert("Du mangler at udfylde feltet 'PC'!");
    oForm.PC.focus();
    return false;
  }

  if (oForm.AS400.value == "" &6 !oForm.AS400.disabled){
    alert("Du mangler at udfylde feltet 'AS400'!");
    oForm.AS400.focus();
    return false;
  }

  if (oForm.Lotus.value == "" && !oForm.Lotus.disabled){
    alert("Du mangler at udfylde feltet 'Lotus'!");
    oForm.Lotus.focus();
    return false;
  }
  return true;
}

</script>
</head>
Avatar billede kennethv Nybegynder
19. november 2008 - 13:44 #10
Smukt.
Avatar billede w13 Novice
19. november 2008 - 18:22 #11
Tak for points! :)
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