Avatar billede jerving Nybegynder
07. oktober 2002 - 16:57 Der er 10 kommentarer og
1 løsning

dearktivering/aktivering af form

Jeg har 2 små problemer/spørgsmål.

1. Jeg har en form med 5 elementer i. Jeg vil gerne deaktivere "Submit" knappen medmindre 2 af felterne er udfyldt - herved menes at "Submit" -knappen skal være "grå" og deaktiveret indtil der er skrevet i 2 af felterne. Jeg har forsøgt at lave en kode, men det virker ikke just efter hensigten:

function check()
{
    if (document.forms[0].elements[0].value == '' ||
        document.forms[0].elements[1].value == '' ||
        document.forms[0].elements[2].value == '')   
    {
    document.forms[0].elements[6].disabled = 'true';
    return false;
    }else{
    document.forms[0].elements[6].disabled = 'false';
    }
}

2. Jeg vil med en checkbox deaktivere et fælt og aktivere et andet felt, der ikke er aktivt som udgangspunkt - her er min kode, som naturligvis ikke funker:

function processForm()
{
  if (document.forms[0].elements[4].checked){
      document.forms[0].elements[5].disabled = 'false';
      document.forms[0].elements[3].disabled = 'true';
  }else{
      document.forms[0].elements[5].disabled = 'true';
      document.forms[0].elements[3].disabled = 'false';
  }
}

Er der nogen der kan fortælle mig hvad der er forkert?

Mvh.

Jerving
Avatar billede hbhansen Nybegynder
07. oktober 2002 - 17:01 #1
Hvis elementer har navn kan du bare kalde dem med document.forms[0].elementnavn.disabled
1. Prøv at fjerne '' ved true og false
2. giver din browser dig ikke en fejl?
Avatar billede hbhansen Nybegynder
07. oktober 2002 - 17:02 #2
Desuden skal du teste  if (document.forms[0].elements[4].checked = true){
..}
Avatar billede jerving Nybegynder
07. oktober 2002 - 17:21 #3
Tak for svaret, men det forholder sig stadig uændret - alle elementer er fremdels aktive hele tiden. min kode ser nu således ud:

<script language = "javascript" TYPE="Text/javascript">
<!--
function check()
{
    if (document.forms[0].ArticleName.value == '' ||
        document.forms[0].Headline.value == '' ||
        document.forms[0].Article.value == '')   
    {
    document.forms[0].Opret.disabled = true;
    return false;
    }else{
    document.forms[0].Opret.disabled = false;
    }
}
function processForm()
{
  if (document.forms[0].checkbox.checked){
      document.forms[0].DestinationNew.disabled = false;
      document.forms[0].Destination.disabled = true;
  }else{
      document.forms[0].DestinationNew.disabled = true;
      document.forms[0].Destination.disabled = false;
  }
}
//-->
</script>
Avatar billede hbhansen Nybegynder
07. oktober 2002 - 17:23 #4
Giver din browser ingen fejl ?
Avatar billede jerving Nybegynder
07. oktober 2002 - 17:26 #5
Nope, det funker blot ikke?...
Avatar billede hbhansen Nybegynder
07. oktober 2002 - 17:27 #6
ok, kalder du overhoved funktionerne i dit html og hvor? post lige det kode !
Avatar billede jerving Nybegynder
07. oktober 2002 - 17:29 #7
Ok, det er her minne javascript kompetencer viser sine store svagheder -tag dig ikke af SQL'en i midten...

<%

case "create"

%>
<html>
<title>Opret ny artikel</title>

<head>
<script language = "javascript" TYPE="Text/javascript">
<!--
function check()
{
    if (document.forms[0].ArticleName.value == '' ||
        document.forms[0].Headline.value == '' ||
        document.forms[0].Article.value == '')   
    {
    document.forms[0].Opret.disabled = true;
    return false;
    }else{
    document.forms[0].Opret.disabled = false;
    }
}
function processForm()
{
  if (document.forms[0].checkbox.checked){
      document.forms[0].DestinationNew.disabled = false;
      document.forms[0].Destination.disabled = true;
  }else{
      document.forms[0].DestinationNew.disabled = true;
      document.forms[0].Destination.disabled = false;
  }
}
//-->
</script>
</head>
<body bgcolor="#CCCCCC">
<form ENCTYPE="multipart/form-data" action="default.asp?mode=insert" method="post">

<table width="500" border="0" align="center" cellpadding="0" cellspacing="0" bgcolor="#999999" class="pic">
  <tr align="center" valign="middle">
    <td colspan="2" class="Head1">Opret ny artikel</td>
  </tr>
  <tr>
    <td width="89" class="txt">Artikelnavn:</td>
    <td width="411"><input name="ArticleName" type="text" id="ArticleName" class="formField" size="45"></td>
  </tr>
  <tr>
    <td class="txt">Overskrift:</td>
    <td><input name="Headline" class="formField" type="text" id="Headline" size="45"></td>
  </tr>
  <tr>
    <td class="txt">Artikel:</td>
    <td><textarea name="Article" class="formField" cols="122" rows="20" id="Article"></textarea></td>
  </tr>
  <tr>
    <td class="txt" height="30">Destination:</td>
    <td class="txt" heigth="30">V&aelig;lgdestination:
      <select name="Destination" class="formField">
<%      Set rs = Server.CreateObject("ADODB.RecordSet")
strSQL = "SELECT * FROM Destinations ORDER BY Destination"
strDSN = "DRIVER={Microsoft Access Driver (*.mdb)};DBQ="&Server.MapPath("../db/AtlantikData.mdb")
rs.Open strSQL, strDSN, 1
If Not (rs.BOF Or rs.EOF) Then
  Do until rs.EOF = True
        Response.Write "<option value='" & rs("Destination") & "'>" & rs("Destination") & vbCrLf
  rs.MoveNext
  Loop
End If
rs.Close
Set rs = Nothing
%>
      </select>
      &nbsp;Eller tilf&oslash;j ny &nbsp;<input type="checkbox" name="checkbox" value="checkbox" >&nbsp;<input name="DestinationNew" class="formField" type="text" size="45"></td>
  </tr>
  <tr>
    <td colspan="2" class="txt">Du vil efter oprettelse af artiklen have mulighed for at vedl&aelig;gge
      billeder ved at klikke p&aring; artiklen der vil fremg&aring; i oversigten.</td>
  </tr>
  <tr>
    <td></td>
    <td class ="txt"><input name="Opret" type="submit" value="Opret" class="formField"></td>
  </tr>
</table>
</form>
</body>
</html>
Avatar billede hbhansen Nybegynder
07. oktober 2002 - 17:32 #8
Du har ikke tilføjet funktionerne i koden! Den checkbox eller andet element man ksal klikke på for at den disabler nogel andre skal du skrive onClick="processForm(); eller check();" som parametre alt efter hvad skal gøre!
Avatar billede jerving Nybegynder
07. oktober 2002 - 17:37 #9
Jeg ved godt at det er et tåbeligt spørgsmål - jeg er ikke bekendt med javascript - har kun gættet mig til ting da jeg er vandt til actionscript(flash), men skal det se således ud eller hvad?..

<input type="checkbox" name="checkbox" value="checkbox" onClick="processForm();> eller hvad?...
Avatar billede jerving Nybegynder
07. oktober 2002 - 17:40 #10
Ja, det var det vidst 1000000000, tak for hjælpen!!!!!!!
Avatar billede hbhansen Nybegynder
07. oktober 2002 - 17:45 #11
Det var så lidt :-) Det er jo det eksperten er til for.
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