Formulier veld disablen

  • Onderwerp starter Onderwerp starter DirkG
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

DirkG

Gebruiker
Lid geworden
2 okt 2007
Berichten
6
Hallo,

Al enige tijd ben ik opzoek naar een formulier met een script welke de volgende actie uitvoert binnen 2 van de 3 velden:
  • Veld A
  • Veld B
  • Vrije input veld

Gebruiker vult veld A in, veld B wordt uitgezet zodat er niks meer ingevuld kan worden en visa versa. Het vrije input veld zal altijd beschikbaar zijn.

Is dit nu zo moeilijk dat ik er helemaal niks over kan vinden of zit ik met het verkeerde oog te zoeken?

Alvast bedankt voor je reactie.. :thumb:

Groetjes,
Dirk
 
Code:
<script language=javascript>
  function check(element) {
    element.disabled = false;
    if(element.id == 'a') {
      document.getElementById('b').disabled = true;
    } else {
      document.getElementById('a').disabled = true;
    }
  }
</script>

<form>
  <input type=text id=a onclick=check(this) />
  <input type=text id=b onclick=check(this) />
  <input type=text id=c />
</form>
 
je kan beter onFocus="..." gebruiken ipv onClick
want als je door je form heen tabt wordt de onclick niet afgevuurd
 
Je tabt eerst op veld a, met de onfocus daarvan zal dan veld b gedisabled worden. En na het disabelen werkt de onfocus van veld b niet meer.

Zelfde probleem met de onclick, zodra je hebt geklikt werkt door het disabelen de onclick van het andere veld niet meer. Ook al vul je niks in.

Dit werkt pas zodra je wat ingevuld hebt:
PHP:
<script type="text/javascript">
 function check() {
  if(document.f.a.value != '') document.f.b.disabled = true;
  if(document.f.b.value != '') document.f.a.disabled = true;
  };
</script>

<form name="f">
 <input type=text name="a" onkeyup="check()" />
 <input type=text name="b" onkeyup="check()" />
 <input type=text name="c" />
</form>
maar het is nog steeds onomkeerbaar. Dit:
PHP:
<script type="text/javascript">
 function check(i,j) {
  if(document.f[i].value != '') document.f[j].value = '';
  };
</script>

<form name="f">
 <input type=text name="a" onkeyup="check('a','b')" />
 <input type=text name="b" onkeyup="check('b','a')" />
 <input type=text name="c" />
</form>
werkt vriendelijker. Als je wat bij a invuld wordt b gewist en vice versa. :)


Vr.Gr. Egel.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan