Avatar billede wolstrup Nybegynder
07. maj 2008 - 10:34 Der er 9 kommentarer og
2 løsninger

ryd felter ved klik på knap

Hvordan rydder jeg nogle specifikke felter i en form? I nogle felter skal indholdet ikke ryddes og andre skal ryddes. Kan jeg evt. gøre det med et fælles id på felterne som skal ryddes?
Avatar billede w13 Novice
07. maj 2008 - 10:38 #1
Nej, id skal altid være unikt, så derfor må der ikke forekomme 2 ens id'er på en side.

Kan du ikke bare lave et array?

<script type="text/javascript">
function ResetFields(o){
  var a=["felt1","felt4"];
  for(var i=0;i<a.length;i++)o[a[i]].value=""
}
</script>

<form blablabla>

  <input type="text" name"felt1"><br>
  <input type="text" name"felt2"><br>
  <input type="text" name"felt3"><br>
  <input type="text" name"felt4"><br>

  <input type="button" value="Ryd nogle felter" onclick="ResetFields(this.form)">

</form>
Avatar billede w13 Novice
07. maj 2008 - 10:51 #2
Hov, fik skrevet name"" og ikke name="":

<script type="text/javascript">
function ResetFields(o){
  var a=["felt1","felt4"];
  for(var i=0;i<a.length;i++)o[a[i]].value=""
}
</script>

<form blablabla>

  <input type="text" name="felt1"><br>
  <input type="text" name="felt2"><br>
  <input type="text" name="felt3"><br>
  <input type="text" name="felt4"><br>

  <input type="button" value="Ryd nogle felter" onclick="ResetFields(this.form)">

</form>
Avatar billede wolstrup Nybegynder
08. maj 2008 - 10:21 #3
Kan desværre ikke få det til at virker. Vil det fejle hvis mine felter hedder:

<input type="text" name="1"><br>
<input type="text" name="2"><br>
<input type="text" name="3"><br>
<input type="text" name="4"><br>

Kan det være derfor?
Avatar billede w13 Novice
08. maj 2008 - 11:44 #4
Jeg mener ikke (er dog ikke sikker) at navne må starte med tal.

I hvert fald virker denne kode helt fint:

<html>
<head></head>
<body>

<script type="text/javascript">
function ResetFields(o){
  var a=["felt1","felt4"];
  for(var i=0;i<a.length;i++)o[a[i]].value=""
}
</script>

<form blablabla>

  <input type="text" name="felt1"><br>
  <input type="text" name="felt2"><br>
  <input type="text" name="felt3"><br>
  <input type="text" name="felt4"><br>

  <input type="button" value="Ryd nogle felter" onclick="ResetFields(this.form)">

</form>

</body>
</html>
Avatar billede w13 Novice
08. maj 2008 - 11:45 #5
Du skal selvfølgelig indsætte felternes navne (dvs. de felter som skal ryddes) i linjen:

  var a=["felt1","felt4"];
Avatar billede roenving Novice
08. maj 2008 - 12:11 #6
>>w13

-- du har helt ret i, at navne (og f.eks. ids !-) ikke må starte med tal ...
Avatar billede wolstrup Nybegynder
09. maj 2008 - 09:02 #7
Perfekt, det virker! Men kan ikke flytte onclick over på et billede, hvordan får jeg det til at spille?
Avatar billede w13 Novice
09. maj 2008 - 09:27 #8
Eh? Funktionen, jeg har lavet, rydder felter, som du bad om. Hvad er det med en onclick?

Men altså det bliver lidt bøvlet at skrive ind i funktionen. Kan du ikke bare rette:

onclick="ResetFields(this.form)"

til:

onclick="ResetFields(this.form);document.getElementById('billedets-id').onclick=function(){}"
Avatar billede w13 Novice
09. maj 2008 - 09:29 #9
Nåå, sorry. Læste forkert.

Hvis du f.eks. giver din <form> et id="form1" , så kan du bruge:

<img src="billedet.bmp" onclick="ResetFields(document.getElementById('form1'))">
Avatar billede wolstrup Nybegynder
09. maj 2008 - 09:36 #10
takker
Avatar billede w13 Novice
09. maj 2008 - 09:39 #11
Og tak for point! :)
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