Avatar billede Mette81 Juniormester
01. juli 2010 - 11:41 Der er 9 kommentarer og
1 løsning

Drop down

Hej.

Hvordan får man en dropdown/side til at brokke sig hvis der ikke er valgt noget i dropdown?

Min dropdown ligger i en form hvor der er nogle tekstfelter som skal udfyldes inden man kan gå videre. Det er sådan en klassisk "hvor har du fundet os"-dropdown hvor der er en selected value.

Mvh Mette.
Avatar billede majbom Novice
01. juli 2010 - 11:58 #1
<script type="text/javascript">
function checkForm(objForm){
  if(objForm.min_select.value==""){
      alert("Du har ikke valgt noget tal!");
      return false;
  }
  return true;
}
</script>


<form onsubmit="return checkForm(this)" method="post" action="">
<select name="min_select">
<option value=""></option>
<option value="1">1</option>
<option value="2">2</option>
<option value="3">3</option>
</select>
<input type="submit" value="SEND">
</form>


?
Avatar billede Mette81 Juniormester
01. juli 2010 - 12:48 #2
Jeg har denne form-start:

<form action="sendmail.asp" method="post" name="sendmail">

Nogle tekstfelter og min dropdown.

Og så en "Send"-knap længere nede:

<input name="Send" type="submit" onClick="YY_checkform('sendmail','tlf','"q','0','tlf')" Value="Send">

Kan det du har skrevet der implementeres?

Mvh Mette.
Avatar billede Slettet bruger
01. juli 2010 - 13:46 #3
note: Ældre browsere kender ikke "value" på en <select>
- det er bedre at teste på dens selectedIndex (0 svarer til at den første <option> (stadig) er valgt)

<script type="text/javascript">
function checkForm(objForm)
  {
  if(objForm.min_select.selectedIndex == 0)
      {
      alert("Du har ikke valgt noget tal!")
      return false
      }
  return true
  }
</script>


Og du får udført checket således:

<form action="sendmail.asp" method="post" name="sendmail" onsubmit="return checkForm(this)">

Knappen skal du bare lade være:
<input name="Send" type="submit" value="Send">
Avatar billede majbom Novice
01. juli 2010 - 14:18 #4
-> T4NK3R - ja det er rigtigt, tak for rettelsen :)

-> met_ski - hvis du poster din YY_checkform funktion, skal jeg implementere det...
Avatar billede Mette81 Juniormester
02. juli 2010 - 08:20 #5
-> splazz - Den er her:

<script language="javascript" type="text/javascript">
function YY_checkform() {
  var args = YY_checkform.arguments; var myDot=true; var myV=''; var myErr='';var addErr=false;var myReq;
  for (var i=1; i<args.length;i=i+4){
    if (args[i+1].charAt(0)=='#'){myReq=true; args[i+1]=args[i+1].substring(1);}else{myReq=false}
    var myObj = MM_findObj(args[i].replace(/\[\d+\]/ig,""));
    myV=myObj.value;
    if (myObj.type=='text'||myObj.type=='password'||myObj.type=='hidden'){
      if (myReq&&myObj.value.length==0){addErr=true}
      if ((myV.length>0)&&(args[i+2]==1)){ //fromto
        var myMa=args[i+1].split('_');if(isNaN(myV)||myV<myMa[0]/1||myV > myMa[1]/1){addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==2)){
          var rx=new RegExp("^[\\w\.=-]+@[\\w\\.-]+\\.[a-z]{2,4}$");if(!rx.test(myV))addErr=true;
      } else if ((myV.length>0)&&(args[i+2]==3)){ // date
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);
        if(myAt){
          var myD=(myAt[myMa[1]])?myAt[myMa[1]]:1; var myM=myAt[myMa[2]]-1; var myY=myAt[myMa[3]];
          var myDate=new Date(myY,myM,myD);
          if(myDate.getFullYear()!=myY||myDate.getDate()!=myD||myDate.getMonth()!=myM){addErr=true};
        }else{addErr=true}
      } else if ((myV.length>0)&&(args[i+2]==4)){ // time
        var myMa=args[i+1].split("#"); var myAt=myV.match(myMa[0]);if(!myAt){addErr=true}
      } else if (myV.length>0&&args[i+2]==5){ // check this 2
            var myObj1 = MM_findObj(args[i+1].replace(/\[\d+\]/ig,""));
            if(myObj1.length)myObj1=myObj1[args[i+1].replace(/(.*\[)|(\].*)/ig,"")];
            if(!myObj1.checked){addErr=true}
      } else if (myV.length>0&&args[i+2]==6){ // the same
            var myObj1 = MM_findObj(args[i+1]);
            if(myV!=myObj1.value){addErr=true}
      }
    } else
    if (!myObj.type&&myObj.length>0&&myObj[0].type=='radio'){
          var myTest = args[i].match(/(.*)\[(\d+)\].*/i);
          var myObj1=(myObj.length>1)?myObj[myTest[2]]:myObj;
      if (args[i+2]==1&&myObj1&&myObj1.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
      if (args[i+2]==2){
        var myDot=false;
        for(var j=0;j<myObj.length;j++){myDot=myDot||myObj[j].checked}
        if(!myDot){myErr+='* ' +args[i+3]+'\n'}
      }
    } else if (myObj.type=='checkbox'){
      if(args[i+2]==1&&myObj.checked==false){addErr=true}
      if(args[i+2]==2&&myObj.checked&&MM_findObj(args[i+1]).value.length/1==0){addErr=true}
    } else if (myObj.type=='select-one'||myObj.type=='select-multiple'){
      if(args[i+2]==1&&myObj.selectedIndex/1==0){addErr=true}
    }else if (myObj.type=='textarea'){
      if(myV.length<args[i+1]){addErr=true}
    }
    if (addErr){myErr+='* '+args[i+3]+'\n'; addErr=false}
  }
  if (myErr!=''){alert('Por favor, relléne las siguientes casillas:\t\t\t\t\t\n\n'+myErr)}
  document.MM_returnValue = (myErr=='');
}
//-->
</script>

TAK - Det er virkelig rart at der er flinke og hjælpsomme mennesker til :)
Avatar billede majbom Novice
02. juli 2010 - 11:24 #6
hvordan ser din form ud? :)
Avatar billede majbom Novice
06. juli 2010 - 19:50 #7
jeg vil tro at hvis du retter:

YY_checkform('sendmail','nombre','#q','0','Nombre','Empresa','#q','0','Empresa','Direccion','#q','0','Direccion','Poblacion','#q','0','Ciudad','Telefono','#q','0','Telefono')


til:

YY_checkform('sendmail','nombre','#q','0','Nombre','Empresa','#q','0','Empresa','Direccion','#q','0','Direccion','Poblacion','#q','0','Ciudad','Telefono','#q','0','Telefono', 'Donde_usted_nos_encontro','#q','0','Donde_usted_nos_encontro')


virker det...
Avatar billede Mette81 Juniormester
12. juli 2010 - 08:12 #8
Nej desværre.. Jeg har for øvrigt også en checkboks der skal tjekkes.. Jeg skal nok give flere point. Jeg var ikke klar over at det ville volde så mange problemer :)

Mvh Mette.
Avatar billede majbom Novice
30. juli 2010 - 17:48 #9
hej Mette

undskyld det sene svar, jeg har kigget lidt på det, men synes ikke jeg kan gennemskue systemet, desværre...
Avatar billede Mette81 Juniormester
10. september 2010 - 13:25 #10
Tak for indsatsen! Jeg lukker her :)
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