Avatar billede Slettet bruger
10. marts 2006 - 23:45 Der er 10 kommentarer og
1 løsning

En lidt svær én tror jeg

Hejsa

Kan det ikke lade sig gøre at have et JavaScript som løbende tæller hvor mange tegn man har i et tekstarea og en tekstboks og så smide det ud i en div-tag imens man skriver i formen?

- Jeg har en mailform, på en webside hvor det skal koste point for antal tegn man skriver derfor ville det være godt hvis brugeren løbende kan følge med i hvor mange point det her koster...

- et lille eksempel:
<form action="DOmail.asp" method="post">
<input type="text" name="Emne" id="Emne">
'Medtag billede:
<label for="OPT">ja </label><input id="OPT" type="radio" checked value="True" name="OP">
<label for="OPF">nej </label><input id="OPF" type="radio" value="False" name="OP">
<textarea name="MailCont" id="MailCont" rows="20" cols="20"></textarea>
</form>

- så skal det være sådan at der tælles tegn i henholdsvis "Emne" og "MailCont", og det skal så lægges sammen til ét tal og smides ud i en div-tag. Hvis "OP" er "True" så skal der tillægges 50 i antal tegn og hvis "OP" er "False" så skal der trækkes 50 fra i antal tegn...

- Kan dette lade sig gøre?

\Dan
Avatar billede roenving Novice
11. marts 2006 - 00:05 #1
Nah, den er nu ikke specielt besværlig, bortset fra, at man skal reagere på mange forskellige felters ændring ...

F.eks. (absolut utestet !-)

<script type="text/javascript">
function showCost(f){
  var subj = f.Emne.value.length;
  var txt = f.MailCont.value.length;
  var sum = subj + txt + (f.OP[0].checked ? 50 : -50);
  document.getElementById("visPris").firstChild.nodeValue = sum;
}
</script>

<form action="DOmail.asp" method="post">
<input type="text" name="Emne" id="Emne" onkeyup="showCost(this.form);">
'Medtag billede:
<label for="OPT">ja </label><input id="OPT" type="radio" checked value="True" name="OP" onclick="showCost(this.form);">
<label for="OPF">nej </label><input id="OPF" type="radio" value="False" name="OP" onclick="showCost(this.form);">
<textarea name="MailCont" id="MailCont" rows="20" cols="20" onkeyup="showCost(this.form);"></textarea>
</form>

<span id="visPris">&nbsp;</span>
Avatar billede softspot Forsker
11. marts 2006 - 00:11 #2
<script type="text/javascript">
function getCheckedValue(ctlArray) {
  for(var i=0; i < ctlArray.length; i++) {
    if(ctlArray[i].checked)
      return ctlArray[i].value;
  }
}
function countChars(obj) {
  var counter = document.getElementById("charCountDisplay");
  if(counter) {
    count = obj.form.MailCont.value.length + obj.form.Emne.value.length + (getCheckedValue(obj.form.OP)=="True"?50:0);
   
    counter.innerHTML = count;
  }
}
</script>

<form action="DOmail.asp" method="post">
  <input type="text" name="Emne" id="Emne">
  'Medtag billede:
  <label for="OPT">ja </label>
  <input id="OPT" type="radio" checked value="True" name="OP">
  <label for="OPF">nej </label>
  <input id="OPF" type="radio" value="False" name="OP">
  <textarea name="MailCont" id="MailCont" rows="20" cols="20"></textarea>
  <div id="charCountDisplay"></div>
</form>
Avatar billede softspot Forsker
11. marts 2006 - 00:12 #3
hmmm... for sent :)
Avatar billede softspot Forsker
11. marts 2006 - 00:16 #4
i øvrigt manglede funktionen også at blive kaldt:

<form action="DOmail.asp" method="post">
  <input type="text" name="Emne" id="Emne" onkeypress="countChars(this)">
  'Medtag billede:
  <label for="OPT">ja </label>
  <input id="OPT" type="radio" checked value="True" name="OP">
  <label for="OPF">nej </label>
  <input id="OPF" type="radio" value="False" name="OP">
  <textarea name="MailCont" id="MailCont" rows="20" cols="20" onkeypress="countChars(this)"></textarea>
  <div id="charCountDisplay"></div>
</form>
Avatar billede roenving Novice
11. marts 2006 - 00:16 #5
Tjah, og den kunne give anledning til en hel del kommentarer ...

Lægge til eller trække fra skrev manden ...

-- og den skal vel også opdateres hvis man ændrer i radio-tingen ...

-- osv.
Avatar billede softspot Forsker
11. marts 2006 - 00:26 #6
Jeg trækker mig bare tilbage til mit sneglehus... ;)
Avatar billede Slettet bruger
11. marts 2006 - 00:28 #7
Hej Roenving

Tak for din hurtige respons! Din løsning var stort set løsningen som jeg skulle bruge...
- dog med et par modifikationer...
Scriptet jeg bruger ser nu således ud:

<script type="text/javascript">
function showCost(f){
  var subj = f.Emne.value.length;
  var txt = f.MailCont.value.length;
  var sum = subj + txt<% if ownpic = True then%> + (f.OP[0].checked ? 50 : 0)<%end if%>;
  document.getElementById("visPris").firstChild.nodeValue = sum;
}
</script>

Af én eller anden underlig grund trækker den 100 fra (og ikke 50) hvis man klikker på "Nej" radio-knappen... Det har jeg rettet i sum-linien som du kan se...

- og så har jeg også lavet den span-tag til en div-tag i stedet... Sådan her:
<div id="visPris">50</div>
der står som standard 50 i forvejen fordi "JA" radio-knappen er checked ved indgang til siden...

- smid et svar for point! Og MANGE TAK for hjælpen!

\Dan
Avatar billede Slettet bruger
11. marts 2006 - 00:36 #8
Jeg har så lige en sidste ting:
hvorfor kan jeg ikke det her:

<input type="button" onclick="document.getElementById('visPris').innerHTML='50'; document.getElementById('Emne').value=''; document.getElementById('MailCont').value=''; document.getElementById('OPT').checked='checked'; document.getElementById('OwnPic').style.visibility=''; document.getElementById('OwnPic').style.position='relative';" value="...slet alt..." name="reset">

- som du ser så er det en slags reset-knap som skal nulstille de to felter og så skal den også sætte prisen til 50...

Men den fejler...

\Dan
Avatar billede Slettet bruger
11. marts 2006 - 00:51 #9
Har fundet ud af sidste spørgsmål... det var bare mig...

- smid et svar...

\Dan
Avatar billede roenving Novice
11. marts 2006 - 10:14 #10
Velbekomme '-)
Avatar billede roenving Novice
19. marts 2006 - 12:49 #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