Avatar billede diggerx Nybegynder
28. oktober 2004 - 17:49 Der er 16 kommentarer og
1 løsning

afkryds radioknap når et felt udfyldes

jeg har følgende som flytter indholdet af et tekstfelt til et skjult felt. det går fint.

samtidig skal den afkrydse en radioknap. det vil den ikke..

function doEcho(){
var txt=document.form.dag.value;
document.form.frekvensvalg.value=txt;
document.form.frekvens[0].click;
// == document.form.frekvens[0].checked;
}

indholdet i radioknappen ser sådan ud:

<input type="radio" name="frekvens" value=""> Gentag hver
        <input name="dag" type="text" class="textbox" size="3" maxlength="2" value="interval" onChange="doEcho()">dag.
        <br> <br>
        <input name="frekvens" type="radio" value="hverdage" >
        alle hverdage

er der nogen der ved hvordan jeg får krydset af??
Avatar billede killer_r Nybegynder
28. oktober 2004 - 17:56 #1
document.form.frekvens[0].checked = true;

???
Avatar billede diggerx Nybegynder
28. oktober 2004 - 18:03 #2
det gjorde ingen forskel.:-(
Avatar billede killer_r Nybegynder
28. oktober 2004 - 18:05 #3
document.form.frekvens[0] er det rigtige objekt?
Avatar billede diggerx Nybegynder
28. oktober 2004 - 18:08 #4
så vidt jeg ved numereres radioknapper med den første som 0, næste som 1 etc

document.form.frekvens er med sikkerehed rigtigt
Avatar billede killer_r Nybegynder
28. oktober 2004 - 18:08 #5
er du sikker på at du har radioknapperne inden i en form?

<form name="form"></form>
Avatar billede diggerx Nybegynder
28. oktober 2004 - 18:11 #6
ja formen ser sådan ud:

<form action="Opgaver_gentag_dag.asp" method="post" name="form">
Avatar billede killer_r Nybegynder
28. oktober 2004 - 18:12 #7
Det her virker hos mig...

<form name="form">
    <input name="frekvens" type="radio">
    <input name="frekvens" type="radio">
</form>
<script type="text/javascript">
    document.form.frekvens[1].checked = true;
</script>

Og du er også sikker på at funktionen bliver kaldt? altså at doEcho() faktisk kører?
Avatar billede diggerx Nybegynder
28. oktober 2004 - 18:13 #8
ups nu er den der
jeg havde overset at du havde checked = true istedet for clik

det må du undskylde

læg et svar
Avatar billede killer_r Nybegynder
28. oktober 2004 - 18:14 #9
Det er fjong! ;o) Glad for at kunne hjælpe...
Avatar billede diggerx Nybegynder
28. oktober 2004 - 18:15 #10
Jeg siger tusind tak
Avatar billede roenving Novice
29. oktober 2004 - 13:27 #11
-- og lige et par bemærkninger:

-- det er hundedumt at bruge 'form' som navn, da ordet er reserveret i javascript og henviser til den form, som ligger omkring et form-element, og derfor giver mange muligheder for fejl ...

-- og hvis man alligevel er inde i en form og skal have fat i et andet element i formen kan man ligesågodt udnytte den foran omtalte property på et form-element:

<form>
  <input type="hidden" name="frekvensvalg">
  <input type="radio" name="frekvens" value=""> Gentag hver
  <input name="dag" type="text" class="textbox" size="3" maxlength="2" value="interval" onChange="doEcho(this)">dag.
  <br> <br>
  <input name="frekvens" type="radio" value="hverdage" onclick="f=this.form.dag;f.disabled=true;f.value='';this.form.frekvensvalg.value='alle'">
  alle hverdage
</form>

<script type="text/javascript">
function doEcho(elm){
  elm.form.frekvensvalg.value = elm.value;
  elm.form.frekvens[0].checked = elm.value!="";
}
</script>

-- og her tager vi også højde for om man skulle slette en tekst i feltet (og at feltet ikke skal have værdi, når den anden mulighed checkes !-)
Avatar billede diggerx Nybegynder
29. oktober 2004 - 14:22 #12
Hej roeving

Jeg vil straks rette mine form navne :-)

Når jeg ikke benytter property på et form-elementet er det fordi jeg er total begynderudi js. og det skal jo også helst være så jeg selv kan følge med. Jeg brugte omkring en time med mine murstens bøger uden at kunne finde ud af at man bare skulle skrive: document.form.frekvens[0].checked = true;.

Når du skriver onclick="f=this.form.dag;f.disabled=true;f.value='';this.form.frekvensvalg.value='alle'", så aner jeg simpelthen ikke hvad der sker.. For mig ser det ud som om at der sendes nogle paramtre ud i det blå og på mystisk vis ender det aligevel det rigtige sted. Det bliver et problem dels fordi jeg startede med det mest enkle dato gentagelsesmønster- Der er mange flere variable i de andre - og dels fordi når det er gjort skal jeg også tjekke om formen er udfyldt rigtigt med et tal og ikke bogstaver og hvad der ellers kan komme.

Jeg er bange for at jeg ville ende i et eller andet hvor jeg ikke kan komme videre..

I det her tilfælde gør det ikke så meget om felterne tømmes, idet selve beregninger først kommer i asp, hvor de hentes udfra hvilken radioknap der er valgt.

Jeg har dog stadig et problem hvis de vælger default. så er der ikke noget i parametrene så jeg skal have den til at udføre to scripts når man trykker på knappen.
Avatar billede roenving Novice
29. oktober 2004 - 15:01 #13
<script type="text/javascript">
function doEcho(elm){
  elm.form.frekvensvalg.value = elm.value;
  elm.form.frekvens[0].checked = elm.value.match(/^\d+$/)!=null;//så tester den, at det er tal !-)
}
</script>
Avatar billede roenving Novice
29. oktober 2004 - 15:03 #14
-- og onclick="f=this.form.dag;f.disabled=true;f.value='';this.form.frekvensvalg.value='alle'", gør:

Hvis der klikkes på radio-knappen, så
f=this.form.dag;//hent dag-feltet ind i variablen f
f.disabled=true;//sæt feltet til ikke at modtage indskrivning
f.value='';//sæt feltets værdi tom
this.form.frekvensvalg.value='alle';//sæt en fornuftig værdi i frekvensvalg-feltet
Avatar billede diggerx Nybegynder
29. oktober 2004 - 15:32 #15
Du sætter hele koden ind i onclick istedet for at kalde en funktion?

hvorfor vil du 'f.disabled=true;//sæt feltet til ikke at modtage indskrivning'? er det bare fordi vi tænker den forskelligt? min ide er at hvis de skriver i feltet flytter radiokanppen bare med.

(jeg er godt nok kommet til at gøre det ekstra kompliceret ved at flytte til skjulte felter, men der er en anden historie ;) Det eneste der i virkeligheden nødvendigt er at radioknappen følger med sidst ændrede ja, ja, ja sådann kan det gå)
Avatar billede diggerx Nybegynder
29. oktober 2004 - 15:53 #16
kan jeg i virkeligeheden bare skrive:

onchange="f=this.form.frekvens[0];f.checked = true;"

idet felt hvor frekvens[0] skal afkrydses ved ændring?
Avatar billede roenving Novice
01. november 2004 - 02:46 #17
29/10-2004 15:32:21

-- min ide er, at hvis man afkrydser et felt, med en generisk værdi, skal det ikke være muligt at indskrive en anden værdi ...

29/10-2004 15:53:25
Meget muligt, men så er jeg ikke helt med !-)
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