Avatar billede jenslund Juniormester
28. november 2003 - 14:25 Der er 19 kommentarer og
1 løsning

Disable form felt

Hej hajer

Har følgende lille knude - har kigget lidt på eksperten, men ikke lige fundet det rigtige - jeg søger et javascript der kan gøre sådan at følegede felter:

    <tr>
        <td width="50">Navn:</td>
        <td width="250"colspan="3"><input name='name' type='text' value="" size="45" tabindex="10"></td>
    </tr>
    <tr>
        <td width="50" align="center">eller</td>
        <td width="250"colspan="3">&nbsp</td>
    </tr>
    <tr>
        <td width="50">Institution:</td>
        <td width="250"colspan="3"><input name='address' type='text' value="" size="45" tabindex="10"></td>
    </tr>

Reagerer ved at udfyldes der i name-feltet bliver institutionsfeltet blured og omvendt.

Hvad siger I - kan det lade sige gøre - eller rettere hvordan kan det lad sig gøre?

;-)

Jens
Avatar billede jenslund Juniormester
28. november 2003 - 14:26 #1
ta jer ikke af at tabindex er forkert - det er underordnet nu
Avatar billede lklingenberg Nybegynder
28. november 2003 - 14:57 #2
det må blive noget i retningen af
<script type="text/javascript">
function disableInstitution(){
  if(!document.frm.name.value==""){
    document.frm.address.disabled=true
  }
}

function disableName(){
  if(!document.frm.address.value==""){
    document.frm.name=true
  }
}
</script>

...
<input name="name" id="name" type="text" value="" size="45" onchange="disableInstitution();">
...

...
<input name="address" id="address" type="text" value="" size="45" onchange="disableName();">
...

Det kan sikkert gøres nemmere, men nogen kan måske tage den derfra...
Avatar billede lklingenberg Nybegynder
28. november 2003 - 14:58 #3
hov...
document.frm.name.disabled=true
Avatar billede jenslund Juniormester
28. november 2003 - 15:02 #4
Hmm - det kan jeg ikke lige få til at spille - der kan intastes i begge felter
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:06 #5
Prøv dette:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<head>
  <title>Disable</title>
  <script type="text/javascript">
    function disableInstitution(){
      if(!document.frm.name.value==""){
        document.frm.address.disabled=true;
      }else
      document.frm.address.disabled=false;
    }

    function disableName(){
      if(!document.frm.address.value==""){
        document.frm.name.disabled=true;
      }else
      document.frm.name.disabled=false;
    }
  </script>
</head>
<body>
  <form name="frm" id="frm" action="" method="get">
    <table>
      <tr>
        <td width="50">Navn:</td>
        <td width="250" colspan="3"><input name="name" id="name" type="text" value="" size="45" onchange="disableInstitution();"></td>
      </tr>
      <tr>
        <td width="50" align="center">eller</td>
        <td width="250" colspan="3">&nbsp;</td>
      </tr>
      <tr>
        <td width="50">Institution:</td>
        <td width="250" colspan="3"><input name="address" id="address" type="text" value="" size="45" onchange="disableName();"></td>
      </tr>
    </table>
  </form>
</body>
</html>
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:07 #6
du skal huske id'erne i inputfelterne og navngive selve formen korrekt
Avatar billede jenslund Juniormester
28. november 2003 - 15:21 #7
Det virker til dels - men man hopper ud af tabulator rækkefølgen og ud af formen - der vil i den endelige form være både felter før og efter

prøv at se hele siden engang

BEMÆRK -->
<SCRIPT LANGUAGE="Javascript1.2" type="text/javascript" SRC="/js/data/postal_name.js"></SCRIPT>
... kalder en postnummer array:
:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">

<html>

<head>

<title>Inputformular</title>

<script language='javascript'>

function messageLength( theForm ) {
  ml = form1.selfdescription.value.length
  return ml
}
    function disableInstitution(){
      if(!document.frm.name.value==""){
        document.frm.address.disabled=true;
      }else
      document.frm.address.disabled=false;
    }

    function disableName(){
      if(!document.frm.address.value==""){
        document.frm.name.disabled=true;
      }else
      document.frm.name.disabled=false;
    }

function updateCharsLeft( theForm ) {
  charsLeft = 3500 - messageLength( theForm )
  theForm.charsLeft.value = charsLeft
  len = messageLength( theForm )
  if( len > 3500 ) {
    alert( 'Beskrivelsen er for lang. Den er ' + len +
          ' tegn lang. Den maksimalt tilladte længde er 3500 tegn' )
    return false
  }
}

</script>

<SCRIPT LANGUAGE="Javascript1.2" type="text/javascript" SRC="/js/data/postal_name.js"></SCRIPT>

<script language='javascript'>

function lookUp (postnrfelt) {

        if (dineData[postnrfelt.value])
            document.frm.bynavn.value = dineData[postnrfelt.value];
        else {
            alert( "ukendt postnummer: "+postnrfelt.value+", prøv igen" );
            postnrfelt.focus();
    }
}; //end lookUp ( Formfelt object )



</script>

</head>

<body>

<form name="frm" id="frm" action="" method="get">
<table border="0" width="300">
      <tr>
        <td width="50">Navn:</td>
        <td width="250" colspan="3"><input name="name" id="name" type="text" value="" size="45" onchange="disableInstitution();"></td>
      </tr>
      <tr>
        <td width="50" align="center">eller</td>
        <td width="250" colspan="3">&nbsp;</td>
      </tr>
      <tr>
        <td width="50">Institution:</td>
        <td width="250" colspan="3"><input name="address" id="address" type="text" value="" size="45" onchange="disableName();"></td>
      </tr>
    <tr>
        <td width="50">Adresse:</td>
        <td width="250"colspan="3"><input name='address' type='text' value="" size="45" tabindex="10"></td>
    </tr>
    <tr>
        <td width="50">Postdistrikt:</td>
        <td width="250"colspan="3"><input name='postdistrikt' type='text' value="" size="45" tabindex="11"></td>
    </tr>
    <tr>
        <td width="50">Postnr.:</td>
        <td width="40" valign="top"><input name='zipcode' type='text' value="" size="4" onkeyup="if(this.value.length==4){lookUp(this)};" size="4" maxlength="4" tabindex="12"></td>
        <td valign="top" width="30">&nbsp;By:</td>
        <td valign="top" width=""><input name='bynavn' type='text' value="" size="29" onfocus='this.blur'; tabindex="13"></td>
    </tr>
</table>

</form>

</body>

</html>
resten se sådan ud nu
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:24 #8
Prøv med dette:

<script type="text/javascript">
    function disableInstitution(){
      document.frm.address.style.backgroundColor = "#EDEDED";
      document.frm.address.blur();
      document.frm.name.focus();
      document.frm.address.disabled=true;
    }

    function disableName(){
      document.frm.name.style.backgroundColor = "#EDEDED";
      document.frm.name.blur();
      document.frm.address.focus();
      document.frm.name.disabled=true;
    }
</script>
Avatar billede jenslund Juniormester
28. november 2003 - 15:26 #9
Man kan stadig skrive i felterne og den hoppe stadig ud af tabulatorrækkefølgen efter feltet institution
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:26 #10
hov de to .focus() linjer er da vist noget vrøvl - dem kan du slette
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:30 #11
Avatar billede jenslund Juniormester
28. november 2003 - 15:30 #12
Hvis du kører hele det script jeg sendte før og udfylder navnefelt trykke TAB så kan du skrive i Institutionsfeltet når du trykke TAB blurer den navnefeltet (havd den ikke skal og hopper dessuden ud af tabulatorrækkefølge)

det skal være sådan at hvis der er udfyldt noget som helst i navnefeltet kan der ikke skrives i institrutionsfeltet og omvendt - først hvis man sletter det  der står i forvejen bliver feltet åbnet for indtastning igen

J
Avatar billede jenslund Juniormester
28. november 2003 - 15:31 #13
http://80.196.138.153/test/disable.html

gør lige præcis det den skal

Jens
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:33 #14
prøv at hapse det fra den side og bruge det på din side og se hvad der sker
Avatar billede jenslund Juniormester
28. november 2003 - 15:38 #15
Jeg tog din kilde og smed ind i et nyt dokument - og det virker - så det ser ud til jeg skal rydde op i lidt kode
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:41 #16
har lige ændret den så den ikke disabler det ene felt selvom det andet felt øndres til et tomt felt.
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:42 #17
håber du kan bruge det - ellers er der sikkert en anden (roenving) der kan hjælpe og/eller optimere det. jeg må smutte nu ;-)
Avatar billede jenslund Juniormester
28. november 2003 - 15:47 #18
Jeg havde brugt det samme name (address) to gange både for institution og address - det er rettet nu

Det virker - send et svar

Jens
Avatar billede jenslund Juniormester
28. november 2003 - 15:48 #19
SPØRGSMÅLET LUKKET
Avatar billede lklingenberg Nybegynder
28. november 2003 - 15:49 #20
Tak for points!
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