Avatar billede monstermand Nybegynder
22. juli 2005 - 10:19 Der er 10 kommentarer og
1 løsning

Javascript form validate.. disabled

Uddrag af koden:

function enableField()
                                            {
           

            document.n3.opretfilnavn1.disabled=false;
                //DET ER HER JEG SKAL HAVE SENDT COUNTEN MED - LIGE NU VIRKER DET KUN FOR DEN FØRSTE ROW                            }
                                           
                                        var count = 0;
                                       
                                        function createInputRow2()
                                       
                                        {
                                            count++;               
                                            objDetail1.innerHTML = "<br><input class='sti' name='opretfilsti"+count+"' type='file' onChange='enableField()'>";
                                            objDetail1.innerHTML = "<p                     objDetail2.innerHTML = "<p class='normal_black'>Navn<br><input class='middle' name='navn"+count+"' type='text' disabled></p>";
                                            objDetail4.innerHTML = "<p class='normal_black'>Kommentar<br><input class='middle' name='kommentar"+count+"' type='text' disabled></p>";                       

                                        }
                                    </script>

Essensen er som følger. For hver gang man trykker på et link, der bliver der added en row i tabellen. I hver row er der en input type="file". Når der ikke er noget indtastet i denne, skal de resterede inputs i de andre celler være disablet.

Det virker igrunden fint nu - med den første. Problemet opstår når jeg skal have sendt "count" hen til funktionen - det kan jeg simpelthen ikke finde ud af.

Håber nogen kan hjælpe (husk at ovenstående kode kun er et uddrag - det samlede script fylder noget mere)
Avatar billede roenving Novice
22. juli 2005 - 14:47 #1
<script type="text/javascript">

function enableField(){
  document.n3.elements['opretfilnavn' + count].disabled=false;
  //DET ER HER JEG SKAL HAVE SENDT COUNTEN MED - LIGE NU VIRKER DET KUN FOR DEN FØRSTE ROW
}
var count = 0;
function createInputRow2(){
  count++;               
  objDetail1.innerHTML = "<br><input class='sti' name='opretfilsti"+count+"' type='file' onChange='enableField()'>";
  objDetail2.innerHTML = "<p class='normal_black'>Navn<br><input class='middle' name='navn"+count+"' type='text' disabled></p>";
  objDetail4.innerHTML = "<p class='normal_black'>Kommentar<br><input class='middle' name='kommentar"+count+"' type='text' disabled></p>";                       
}
</script>

-- jeg går udfra, at enableField ikke kaldes uden at createInputRow2 har været kaldt !-)
Avatar billede monstermand Nybegynder
22. juli 2005 - 16:59 #2
jaa.. det virker sådanset - der er bare en lille hage ved. Ved ikke om jeg kan forklare det - men det er da et forsøg værd. Som du selv antyder, kalder jeg enablefield() efter createInputRow2() er kaldt. Jeg bruger ovenstående for at sikre mig at folk har valgt en fil til upload, inden de begynder at skrive i felter. Problemet opstår hvis folk (uden at skrive noget) vælger at add'e lad os sige 3 rækker - dvs. de trykker 3 gange på createInputRow2() linket.

..så er det jo klart at enableField() ikke når at følge med - den vil jo så kun aktivere felterne i den sidste row der er add'ed..

Nærliggende ville være at disable den button der add'er rows, men jeg anvender et normalt link - er der en tilsvarnede mulighed der?

Håber du forstår... :-)
Avatar billede roenving Novice
22. juli 2005 - 17:03 #3
function createInputRow2(){
  if(!document.n3.elements['opretfilnavn' + count].disabled){
    count++;               
    objDetail1.innerHTML = "<br><input class='sti' name='opretfilsti"+count+"' type='file' onChange='enableField()'>";
    objDetail2.innerHTML = "<p class='normal_black'>Navn<br><input class='middle' name='navn"+count+"' type='text' disabled></p>";
    objDetail4.innerHTML = "<p class='normal_black'>Kommentar<br><input class='middle' name='kommentar"+count+"' type='text' disabled></p>";
  }
}
Avatar billede monstermand Nybegynder
22. juli 2005 - 17:13 #4
document.n4.elements['opretfilnavn' + count].disabled er null eller ikke et objekt..

..det er fejlmeddelelsen
Avatar billede monstermand Nybegynder
22. juli 2005 - 17:13 #5
(min form hedder n4 - så det er ikke der fejlen ligger ;) )
Avatar billede roenving Novice
22. juli 2005 - 17:14 #6
Hedder den ikke n3 mere ?-)
Avatar billede roenving Novice
22. juli 2005 - 17:15 #7
Selvfølgelig, den vil jo give fejl første gang, så:

  if(count == 0 || !document.n3.elements['opretfilnavn' + count].disabled){
Avatar billede monstermand Nybegynder
22. juli 2005 - 17:15 #8
nops.. det en anden en jeg er igang med nu..
Avatar billede monstermand Nybegynder
22. juli 2005 - 17:23 #9
så mangler du bare at smide et svar, så er den hjemme!
Avatar billede roenving Novice
22. juli 2005 - 17:25 #10
Velbekomme '-)
Avatar billede roenving Novice
22. juli 2005 - 22:43 #11
-- 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