Avatar billede d.kryger Praktikant
18. maj 2005 - 08:26 Der er 8 kommentarer og
1 løsning

Alert hvis select har en bestemt værdi

Hej eksperter.

Kan nogen hjælpe mig med at få en "alert-boks" frem hvis min select værdi er nul (0)?
Det skal altså være ligesom hvis du indtaster 0 i "antal".

Min kode ser sådan ud:
<html>

<head>
<title>Test</title>
<SCRIPT language="JavaScript">
<!--
function IsNumeric(sText){
var ValidChars = "0123456789";
var IsNumber = true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++) {
  Char = sText.charAt(i);
  if (i==0 && Char=='0'){
  alert("Det indtastede antal må ikke være 0 eller starte med 0!");
  return false;
  }
  if (ValidChars.indexOf(Char) == -1) {
    IsNumber = false;
  }
}
if (!IsNumber){
  alert("Det indtastede antal er ikke gyldigt!");
}
return IsNumber
}
// -->
</SCRIPT>
</head>

<body>

<form onsubmit='return IsNumeric(this.antal.value);' action='test.htm' method='get' name='test'>

<select style='width: 47px; height: 18px;' name='stoerrelse' class='input'>
<option value="0">0</option>
<option value="1">1</option>
</select>
<br>
<br>
<input type='text' name='antal' class='input' style='width: 24px; height: 18px; text-align:right;' value=''>
<br>
<br>
<input type="submit" value="Send" name="B1">

</form>

</body>

</html>
Avatar billede fennec Nybegynder
18. maj 2005 - 08:33 #1
var obj = document.test.stoerrelse
if(obj.selectedIndex == 0)
Avatar billede d.kryger Praktikant
18. maj 2005 - 08:35 #2
Nu er jeg ikke en JavaScript-haj, så kan du ikke sætte det ind i min kode?
Avatar billede fennec Nybegynder
18. maj 2005 - 08:40 #3
<html>

<head>
<title>Test</title>
<SCRIPT language="JavaScript">
<!--

function checkSelect(obj)
{
  if(obj.selectedIndex==0)
  {
    alert('værdien skal være højre end 0');
    return false;
  }
  else
    return true;
}
// -->
</SCRIPT>
</head>

<body>

<form onsubmit='return checkSelect(this.stoerrelse);' action='test.htm' method='get' name='test'>

<select style='width: 47px; height: 18px;' name='stoerrelse' class='input'>
<option value="0">0</option>
<option value="1">1</option>
</select>
<br>
<br>
<input type="submit" value="Send" name="B1">

</form>

</body>
</html>
Avatar billede fennec Nybegynder
18. maj 2005 - 08:42 #4
Skal lige bemærke at den bare tjekker for om det er den første option der er valgt, som i dette tilfælde jo er den der er 0. Hvis du vil tjekke for værdien, hvis 0 ikke nødvendig vis er det første element, er det sådan:

function checkSelect(obj)
{
  if(obj[obj.selectedIndex].value=='0')
  {
    alert('værdien skal være højre end 0');
    return false;
  }
  else
    return true;
}
Avatar billede d.kryger Praktikant
18. maj 2005 - 08:46 #5
OK, hvordan får jeg den så til samtidig også at tjekke på antal ikke er nul (ligesom den gjorde før?
Avatar billede fennec Nybegynder
18. maj 2005 - 08:48 #6
Ok, du skal have begge tjek.
2 sek...
Avatar billede fennec Nybegynder
18. maj 2005 - 08:53 #7
<html>
<head>
<title>Test</title>
<SCRIPT language="JavaScript">
<!--
function IsNumeric(sText){
var ValidChars = "0123456789";
var IsNumber = true;
var Char;
for (i = 0; i < sText.length && IsNumber == true; i++) {
  Char = sText.charAt(i);
  if (i==0 && Char=='0'){
  alert("Det indtastede antal må ikke være 0 eller starte med 0!");
  return false;
  }
  if (ValidChars.indexOf(Char) == -1) {
    IsNumber = false;
  }
}
if (!IsNumber){
  alert("Det indtastede antal er ikke gyldigt!");
}
return IsNumber
}

function checkSelect(obj)
{
  if(obj.selectedIndex==0)
  {
    alert('værdien skal være højre end 0');
    return false;
  }
  else
    return true;
}

function checkAll(ele1, ele2)
{
  return (IsNumeric(ele1) && checkSelect(ele2))
}
// -->
</SCRIPT>
</head>

<body>

<form onsubmit='return checkAll(this.antal.value,this.stoerrelse);' action='test.htm' method='get' name='test'>

<select style='width: 47px; height: 18px;' name='stoerrelse' class='input'>
<option value="0">0</option>
<option value="1">1</option>
</select>
<br>
<br>
<input type='text' name='antal' class='input' style='width: 24px; height: 18px; text-align:right;' value=''>
<br>
<br>
<input type="submit" value="Send" name="B1">

</form>

</body>
</html>

Vil lige gøre opmærksom på at det er muligt at lade "antal" være tom, også består den IsNumeric() tjekket. Er det meningen??
Avatar billede d.kryger Praktikant
18. maj 2005 - 09:02 #8
Tak, så virker det...
Tak for den hurtige hjælp!
Avatar billede fennec Nybegynder
18. maj 2005 - 09:04 #9
no prob
.o) <-- One Eyed Jack
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