Avatar billede jobb Nybegynder
18. oktober 2005 - 16:23 Der er 17 kommentarer og
1 løsning

Validering af chk boks samt tekst felt og radio

Hej Eksperter
Jeg har et ? angående Java jeg ville høre om der er nogle der kunne hjælpe mig med en validering jeg kan ikke få den til at virke og jeg ville også gerne have noget forståelse for den.

Der er 4 chkbokse hvis en af den er checked skal den tilhørende gruppe radio og tekstfelt være fyldt
hvis ingen af de 4 chkboks er checked skal man ikke kunne søge.

Her er lidt kode som jeg har lejet med

Med Venlig Hilsen Kenneth

function validateSearch(search) {
if (search.chkbox_nr.checked == true){
if (search.Search_nr.value == ""){
alert("Der skal intastes data i feltet!");
document.search.Search_nr.focus();
return false;
}else{
var elms = document.getElementsByName("search_kreterie_nr");
var tjek = false;
for (i=0;i<elms.length;i++){if (elms[i].checked){tjek = true;}}
if (!tjek){alert('Du skal markere i mindst en radio');
document.search.Search_nr.focus();
return false;
}else{
if (search.chkbox_titel.checked == true){
if (search.Search_titel.value == ""){
alert("Der skal intastes data i feltet!");
document.search.Search_titel.focus();
return false;
}else{
var elms = document.getElementsByName("search_kreterie_titel");
var tjek = false;
for (i=0;i<elms.length;i++){if (elms[i].checked){tjek = true;}}
if (!tjek){alert('Du skal markere i mindst en radio');
document.search.Search_titel.focus();
return false;
}
}
}
return true;
}
Avatar billede roenving Novice
18. oktober 2005 - 16:30 #1
Java ?-)

-- det har da ikke det fjerneste med java at gøre ...
Avatar billede jobb Nybegynder
18. oktober 2005 - 16:34 #2
<SCRIPT LANGUAGE="JavaScript" TYPE="text/javascript">
Den bliver smidt ind her er det ikke java ?
Avatar billede roenving Novice
18. oktober 2005 - 16:36 #3
Java og javascript har ca. 4 ting til fælles: j - a - v - a !-)

-- og da Java er en beskyttet betegnelse for et programmeringssprog er det en særdeles uheldig forkortelse af ordet javascript ...

-- men kan du ikke lægge et link til formens udseende ?-)
Avatar billede jobb Nybegynder
18. oktober 2005 - 16:50 #4
LOL Ups ja der kan man bare se jeg skulle nok også have lært de sidste bogstaver
http://www.bigk.dk/test.asp
Avatar billede jobb Nybegynder
18. oktober 2005 - 18:55 #5
Hallo
Avatar billede psykochicken Nybegynder
18. oktober 2005 - 20:24 #6
Prøv med:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Søgning DVD Film</title>
<style type="text/css">
td {
background:#fff;
}
.green {
background:#009999;
}
</style>
<script type="text/javascript">
function TjekForm() {
  for(i=1; i<=4; i++) {
    var a = document.getElementById("chkbox_"+i);
    var b = document.getElementById("search_"+i);
    if((!a.checked && !b.value=="") || (a.checked && b.value=="")) {
      alert("Du skal både markere radio og skrive tekst !");
      b.focus();
      return false;
    }
  }
}
</script>
</head>

<body>
<div align="center">
<center>
<table cellSpacing=1 cellPadding=2 bgColor=#000000  border=0 width="98%" id="table2" style="font-family: Times New Roman; font-size: 10pt">
  <form name="search" action="?Opration=detalje&search=True&" method="post" onsubmit="return TjekForm();">
  <tr class=head>
    <td align="left" colspan="7" class="green">Søgning DVD Film
    </td>
  </tr>
  <tr align="center">
    <td class="green" width="5%"></td>
    <td width="5%" class="green"></td>
    <td>
          <select size="1" name="search_resutat">
        <option value="10">10</option>
        <option value="15">15</option>
        <option value="20">20</option>
        <option value="25">25</option>
        <option value="30">30</option>
        <option value="35">35</option>
        <option value="40">40</option>
        </select>
    </td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" value="True"  name="chkbox_1" id="chkbox_1"></td>
    <td width="5%" class="green">Nr.</td>
    <td><input type="text" name="search_1" size="50" id="search_1" value=""></td>
    <td>Starten<br><input type="radio" name="search_kreterie_nr" value="starten"  checked></td>
    <td>Indeholder<br><input type="radio" name="search_kreterie_nr" value="indeholder" ></td>
    <td>Endelse<br><input type="radio" name="search_kreterie_nr" value="endelse" ></td>
    <td>Eksakt ord<br><input type="radio" name="search_kreterie_nr" value="eksakt_ord" ></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" value="True"  name="chkbox_2" id="chkbox_2" ></td>
    <td width="5%" class="green">Titel.</td>
    <td><input type="text" name="search_2" size="50" id="search_2" value=""></td>
    <td>Starten<br><input type="radio" name="search_kreterie_titel" value="starten"  checked></td>
    <td>Indeholder<br><input type="radio" name="search_kreterie_titel" value="indeholder" ></td>
    <td>Endelse<br><input type="radio" name="search_kreterie_titel" value="endelse" ></td>
    <td>Eksakt ord<br><input type="radio" name="search_kreterie_titel" value="eksakt_ord" ></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" value="True"  name="chkbox_3" id="chkbox_3"></td>
    <td width="5%" class="green">Kategori.</td>
    <td><input type="text" name="search_3" size="50" id="search_3" value=""></td>
    <td>Starten<br><input type="radio" name="search_kreterie_kategori" value="starten"  checked></td>
    <td>Indeholder<br><input type="radio" name="search_kreterie_kategori" value="indeholder" ></td>
    <td>Endelse<br>    <input type="radio" name="search_kreterie_kategori" value="endelse" ></td>
    <td>Eksakt ord<br><input type="radio" name="search_kreterie_kategori" value="eksakt_ord" ></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" value="True"  name="chkbox_4" id="chkbox_4" ></td>
    <td width="5%" class="green">Udlån.</td>
    <td><input type="text" name="search_4" size="50" id="search_4" value=""></td>
    <td>Starten<br><input type="radio" name="search_kreterie_udlon" value="starten"  checked></td>
    <td>Indeholder<br><input type="radio" name="search_kreterie_udlon" value="indeholder" ></td>
    <td>Endelse<br>    <input type="radio" name="search_kreterie_udlon" value="endelse" ></td>
    <td>Eksakt ord<br><input type="radio" name="search_kreterie_udlon" value="eksakt_ord" ></td>
  </tr>
  <tr align="center">
    <td class="green" colspan="7"><input type="submit" value="Søg" name="søg" style="font-size: 10 px"></td>
  </tr>
</form>
</table>
</center>
</div>
</body>
</html>

/psc :)
Avatar billede roenving Novice
19. oktober 2005 - 14:03 #7
-- og du overså den ulovlige nesting, for et form-tag må ikke ligge direkte i en table !-)

-- så det skal nødvendigvis gøres omvendt, så hele tabellen ligger inde i formen !-)

Altså:

<form name="search" action="?Opration=detalje&search=True&" method="post" onsubmit="return TjekForm();">
  <table cellSpacing=1 cellPadding=2 bgColor=#000000  border=0 width="98%" id="table2" style="font-family: Times New Roman; font-size: 10px;">

    ...

  </table>
</form>

-- bemærk også, at jeg har lavet enheden om til px i font-størrelsen, for der er faktisk browsere, som tager enheden alvorligt, og derfor laver størrelsen ca. 1½ gange så stor, som den mest udbredte browser fejlagtigt laver den !-)
Avatar billede psykochicken Nybegynder
19. oktober 2005 - 19:24 #8
Så sandt, så sandt - jeg pudser lige brillerne ;o)
Avatar billede jobb Nybegynder
25. oktober 2005 - 20:02 #9
Jeg kan ikke få den til at tage radio med ind i ellers alt det andet virker som det skal
Avatar billede psykochicken Nybegynder
25. oktober 2005 - 23:52 #10
Hvad mener du ?
Avatar billede jobb Nybegynder
26. oktober 2005 - 15:54 #11
<td>Starten<br><input type="radio" name="search_kreterie_1" value="starten"></td>
    <td>Indeholder<br><input type="radio" name="search_kreterie_1" value="indeholder" ></td>
    <td>Endelse<br>    <input type="radio" name="search_kreterie_1" value="endelse" ></td>
    <td>Eksakt ord<br><input type="radio" name="search_kreterie_1" value="eksakt_ord" ></td>

den skal også tjekke om nogle af de her radio er checked jeg har fjernet "checket" fra dem med vilje og på de 4 linier radio under hinanden har jeg kaldt dem search_kreterie_1 til 4
Avatar billede psykochicken Nybegynder
26. oktober 2005 - 18:27 #12
Ok !-)
..men ville det ikke være mere brugervenligt at lade den radio, der søger bredets være "checked". Så kan brugeren selv indsnævre sine søgekriterier ?
Så behøver du kun at kontrollere om checkboksen og det tilhørende tekstfelt er udfyldt.

/psc
Avatar billede jobb Nybegynder
26. oktober 2005 - 18:57 #13
jo det har du ret i og det vil jeg gøre men kan du vise mig hvordan man laver det og fortælle mig hvordan det virker
Avatar billede jobb Nybegynder
26. oktober 2005 - 19:00 #14
det skal også være sådanne hvis man ikke har tjeket noget skal man ikke kunne søge
Avatar billede psykochicken Nybegynder
27. oktober 2005 - 15:57 #15
Hvis du lader én af de 4 radioknapper være checked fra starten, som:
<input type="radio" name="search_kreterie_1" value="starten" CHECKED>,
og alle 4 har sammen navn, vil én af dem altid være checked, hvorfor det ikke er nødvendig med kontrol.

Du kan også vælge først at markere en radioknap når brugeren skriver noget i tekstfeltet og så lægge kontrollen på tekstfeltet. Dvs hvis tekstfeltet er udfyldt ved du at en radioknap også er markeret, noget ala:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Søgning DVD Film</title>
<style type="text/css">
table {
background:#000;
width:98%;
font-family:Times New Roman;
font-size:13px;
}
td {
background:#fff;
}
.green {
background:#099;
}
</style>
<script type="text/javascript">
// Validering hvis checkboks er markeret og tekstfelt er udfyldt kan formen submittes
function TjekForm() {
  for(i=1; i<=4; i++) {
    var a = document.getElementById("chkbox_"+i);
    var b = document.getElementById("search_"+i);
    if(a.checked && !b.value=="") {
    return true;
    }
    else {
      alert("Du skal skrive et søgeord og vælge en radio !");
      b.focus();
      return false;
    }
  }
}

// Denne funktion markerer første radioknap, hvis tekstfeltet udfyldes og fjerner markering, hvis tekstfelt er tomt
function Tjek(elm){
  if(elm.value.length > 0){
    document.getElementById(elm.id + '1').checked=true;
  }
  else {
    for(i=1;i<=4;i++){
      document.getElementById(elm.id + i).checked=false;
    }
  }
}

// Starter funktionen Tjek(elm), når siden loades
window.onload = function(){
  for(i=1;i<=4;i++){
    document.getElementById('search_' + i).onkeyup = function(){Tjek(this);}
  }
}
</script>
</head>

<body>
<div align="center">
<center>
<form name="search" action="?Opration=detalje&search=True&" method="post" onsubmit="return TjekForm();">
<table id="table2" cellspacing="1px" cellpadding="2px" border="0px">
  <tr class=head>
    <td align="left" colspan="7" class="green">Søgning DVD Film
    </td>
  </tr>
  <tr align="center">
    <td class="green" width="5%"></td>
    <td width="5%" class="green"></td>
    <td>
      <select size="1" name="search_resutat">
        <option value="10">10</option>
        <option value="15">15</option>
        <option value="20">20</option>
        <option value="25">25</option>
        <option value="30">30</option>
        <option value="35">35</option>
        <option value="40">40</option>
      </select>
    </td>
    <td></td>
    <td></td>
    <td></td>
    <td></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" name="chkbox_nr" id="chkbox_1" value="True"></td>
    <td width="5%" class="green">Nr.</td>
    <td><input type="text" name="search_1" size="50" id="search_1" value=""></td>
    <td>Indeholder<br><input type="radio" id="search_11" name="search_kreterie_nr" value="indeholder"></td>
    <td>Starten<br><input type="radio" id="search_12" name="search_kreterie_nr" value="starten"></td>
    <td>Endelse<br><input type="radio" id="search_13" name="search_kreterie_nr" value="endelse"></td>
    <td>Eksakt ord<br><input type="radio" id="search_14" name="search_kreterie_nr" value="eksakt_ord"></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" name="chkbox_titel" id="chkbox_2" value="True"></td>
    <td width="5%" class="green">Titel.</td>
    <td><input type="text" name="search_2" size="50" id="search_2" value=""></td>
    <td>Indeholder<br><input type="radio" id="search_21" name="search_kreterie_titel" value="indeholder"></td>
    <td>Starten<br><input type="radio" id="search_22" name="search_kreterie_titel" value="starten"></td>
    <td>Endelse<br><input type="radio" id="search_23" name="search_kreterie_titel" value="endelse"></td>
    <td>Eksakt ord<br><input type="radio" id="search_24" name="search_kreterie_titel" value="eksakt_ord"></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" name="chkbox_kategori" id="chkbox_3" value="True"></td>
    <td width="5%" class="green">Kategori.</td>
    <td><input type="text" name="search_3" size="50" id="search_3" value=""></td>
    <td>Indeholder<br><input type="radio" id="search_31" name="search_kreterie_kategori" value="indeholder"></td>
    <td>Starten<br><input type="radio" id="search_32" name="search_kreterie_kategori" value="starten"></td>
    <td>Endelse<br><input type="radio" id="search_33" name="search_kreterie_kategori" value="endelse"></td>
    <td>Eksakt ord<br><input type="radio" id="search_34" name="search_kreterie_kategori" value="eksakt_ord"></td>
  </tr>
  <tr align="center">
    <td width="5%" class="green"><input type="checkbox" name="chkbox_udlon" id="chkbox_4" value="True"></td>
    <td width="5%" class="green">Udlån.</td>
    <td><input type="text" name="search_4" size="50" id="search_4" value=""></td>
    <td>Indeholder<br><input type="radio" id="search_41" name="search_kreterie_udlon" value="indeholder"></td>
    <td>Starten<br><input type="radio" id="search_42" name="search_kreterie_udlon" value="starten"></td>
    <td>Endelse<br><input type="radio" id="search_43" name="search_kreterie_udlon" value="endelse"></td>
    <td>Eksakt ord<br><input type="radio" id="search_44" name="search_kreterie_udlon" value="eksakt_ord"></td>
  </tr>
  <tr align="center">
    <td class="green" colspan="7"><input type="submit" value="Søg" name="søg" style="font-size: 10px"></td>
  </tr>
</table>
</form>
</center>
</div>
</body>
</html>
Avatar billede jobb Nybegynder
01. november 2005 - 19:56 #16
Takker mange gange kan du ikke lægge et svar så du kan få point
Avatar billede psykochicken Nybegynder
03. november 2005 - 01:03 #17
Velbekomme :-)
Avatar billede psykochicken Nybegynder
03. november 2005 - 19:39 #18
..og tak for point :-)
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