Avatar billede -kenner- Nybegynder
21. maj 2007 - 22:38 Der er 6 kommentarer og
1 løsning

disable et felt indtil der er skrevet i et andet.

Hej eksperter,

Jeg vil høre om i kan hjælpe mig med en simpel funktion, der kan disable et felt før der er skrevet i et andet?

Det drejer sig faktisk om i alt 20 felter, 10 text og 10 textarea's.

text felterne har navnet overksrift1 - overskrift10 og textaresene har navnene tekst1 - tekst10.

det skal fungere sådan at først når der er skrevet i felterne overskrift1 og tekst1, så kan der skrives i overskrift2 og tekst2, altså vil jeg tvinge brugeren til at udfylde felterne i rækkefølge.
Avatar billede roenving Novice
21. maj 2007 - 22:59 #1
F.eks.

<script type="text/javascript">
function enableField(elm){
  var fType = elm.name.replace(/^(.*)?\d+$/,"$1");
  var num = +elm.name.replace(/^.*?(\d+)$/, "$1");
  if(fType == "overskrift")
    elm.form.elements["tekst" + num].disabled = false;
  else if(fType == "tekst" && elm.form.elements["overskrift"+ ++num])
    elm.form.elements["overskrift"+num].disabled = false;
}
</script>

<form>
Overskrift 1:<br>
<input type="text" name="overskrift1" onkeyup="enableField(this);"><br>
Tekst 1:<br>
<textarea name="tekst1" onkeyup="enableField(this);" disabled="disabled"></textarea><br>
Overskrift 2:<br>
<input type="text" name="overskrift2" onkeyup="enableField(this);" disabled="disabled"><br>
Tekst 2:<br>
<textarea name="tekst2" onkeyup="enableField(this);" disabled="disabled"></textarea><br>
<br>
...
</form>
Avatar billede roenving Novice
21. maj 2007 - 23:04 #2
Hrm, jeg ved ikke hvor følsom, du vil have den, men i hvert fald skal den ændres i en lille detalje:

function enableField(elm){
  var fType = elm.name.replace(/^(.*?)\d+$/,"$1");

...
Avatar billede -kenner- Nybegynder
21. maj 2007 - 23:16 #3
den skal bare reagere på != tom
Avatar billede roenving Novice
21. maj 2007 - 23:25 #4
Så bliver det:

<script type="text/javascript">
function enableField(elm){
  var fType = elm.name.replace(/^(.*?)\d+$/,"$1");
  var num = +elm.name.replace(/^.*?(\d+)$/, "$1");
  if(fType == "overskrift")
    elm.form.elements["tekst" + num].disabled = elm.value == "";
  else if(fType == "tekst" && elm.form.elements["overskrift"+ ++num])
    elm.form.elements["overskrift"+num].disabled = elm.value == "";
}
</script>

Velbekomme '-)
Avatar billede roenving Novice
22. maj 2007 - 13:15 #5
-- og tak for point ;~}
Avatar billede -kenner- Nybegynder
15. juli 2007 - 17:56 #6
Jeg har et ligende tilfælde.

<select name=\"Type\"style=\"width:150px\"><option value=\"0\">V&aelig;lg</option><option value=\"1\">Cykel</option><option value=\"2\">Reservedel</option><option value=\"3\">T&oslash;j</option></select>

Denne select skal bestemme om "gear" eller "titel" feltet skal disables.

er værdien 2 eller 3 skal "gear" disables og er værdien 1 er det "titel" der skal disables.

Gear: <input type=\"text\" name=\"Gear\" value=\"\" style=\"width:150px\">
Titel: <input type=\"text\" name=\"Titel\" value=\"\" style=\"width:150px\"></td></tr>
Avatar billede roenving Novice
21. juli 2007 - 07:10 #7
<select name="Type" style="width:150px" onchange="this.form.Gear.disabled=this.selectedIndex>1;this.form.Titel.disabled=this.selectedIndex==1;">
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