Avatar billede cyberkox Nybegynder
28. april 2006 - 21:02 Der er 20 kommentarer og
2 løsninger

Deaktivere textarea hvis man siger ja

Hej

Jeg har en form:
<form action="?mode=aktuelt" method="post" name="aktuelt">
<input type="radio" value="1" name="vis" checked="checked"> Ja
<input type="radio" value="0" name="vis"> Nej
<textarea name="tekst"  cols="70" rows="15" id="myTextarea"> </textarea>

Hvis man så sætter hak i nej, textarea'et blive gråt og man ska ikke kunne skrive noget i feltet.

Hvordan klares dette ?
Avatar billede mclemens Nybegynder
28. april 2006 - 21:34 #1
sådan?


<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="content-type" content="text/html; charset=iso-8859-1"><title>Ingen titel</title></head>

<body>

<form action="?mode=aktuelt" method="post" name="aktuelt">
<input type="radio" value="1" name="vis" checked="checked" onclick="tn=document.aktuelt.myTextarea;tn.disabled=false;tn.style.background='#fff';"> Ja
<input type="radio" value="0" name="vis" onclick="tn=document.aktuelt.myTextarea;tn.disabled=true;tn.style.background='#ccc';"> Nej
<textarea name="tekst"  cols="70" rows="15" id="myTextarea"> </textarea>
</form>

</body></html>
Avatar billede mclemens Nybegynder
28. april 2006 - 21:36 #2
hvis værdi skal nulstilles ved tryk på nej så tilføj skift nej til denne:

<input type="radio" value="0" name="vis" onclick="tn=document.aktuelt.myTextarea;tn.disabled=true;tn.style.background='#ccc';tn.value='';"> Nej
Avatar billede cyberkox Nybegynder
28. april 2006 - 21:40 #3
Joe, det virker fint. Problemet er bare, at på det textarea har jeg en RTE editor i brug. Og når den er sat til, kan man ikke deaktivere textarea?

Det er Web Wiz Rich Text Editor release version 3.0, hvis det siger dig noget?
Avatar billede mclemens Nybegynder
28. april 2006 - 22:03 #4
Fandt den lige på nettet... sådan?

<input type="radio" value="1" name="vis" checked="checked" onclick="ed=document.getElementById('WebWizRTE').contentWindow.document.body;ed.contentEditable = true;ed.style.background='#fff';"> Ja
<input type="radio" value="0" designMode="on" name="vis" onclick="ed=document.getElementById('WebWizRTE').contentWindow.document.body;ed.contentEditable = false;ed.style.background='#ccc';"> Nej
Avatar billede mclemens Nybegynder
28. april 2006 - 22:04 #5
Det er ikke et textarea... men en iframe med indhold som den opretter ved start...
Avatar billede cyberkox Nybegynder
28. april 2006 - 22:31 #6
Ahh, så blev jeg også klogere. Og minsandten om den ikke virker :)

Der er dog lige 2 ting endnu:
1. Når siden loades er Nej Checked. Dvs at boksen skal være grå fra starten. Hvor klarer man den?

2. Når man trykker i iframet, ska der sættes hak i Ja og man skal kunne skrive i den

Kan du klare den også :)
Avatar billede mclemens Nybegynder
28. april 2006 - 22:42 #7
designMode="on" i nej's input skal slettes... det var en lille tester fejl...

1 & 2: i RTE_javascript.asp hedder den det hos dig ???
... nåh, i den fil med scripts'ene skal
dette funktions afsnit udskiftes: function initIframe(){...}
(med den rettede udgave nedenunder)


    function initIframe(){
        editor.attachEvent('onclick', function(){ed=document.getElementById('WebWizRTE').contentWindow.document.body;ed.contentEditable = true;ed.style.background='#fff';chks=document.getElementsByName("vis");chks[0].checked=true;chks[1].checked=false;});       
        editor.attachEvent('onkeypress', editorEvents);
        editor.attachEvent('onmousedown', editorEvents);
        document.attachEvent('onmousedown', hideIframes);
        editor.body.contentEditable = false;
                editor.body.style.background="#ccc";
    }
Avatar billede cyberkox Nybegynder
28. april 2006 - 22:49 #8
Er det det her du tænker på:

    function initIframe(){
<%

'IE uses contentEditable instead of designMode to prevent runtime errors in IE6.0.26 to IE6.0.28
'IE uses proprietary attachEvent instead of following the W3C Events module and using addEventListener
'IE SUCKS!!
If RTEenabled = "winIE" Then

%>       
        editor.attachEvent('onkeypress', editorEvents);
        editor.attachEvent('onmousedown', editorEvents);
        document.attachEvent('onmousedown', hideIframes);
        editor.body.contentEditable = true;
<%

'Gekco needs designMode enabled AFTER we listen for events using addEventListener
Else
%>        editor.addEventListener('keypress', editorEvents, true);
        editor.addEventListener('mousedown', editorEvents, true);
        document.addEventListener('mousedown', hideIframes, true);
        editor.designMode = 'on';
<%
End If

%>    }
    setTimeout(initIframe, 300);
   
    //get present onsubmit events
    if (typeof textArea.form.onsubmit == 'function'){
        textArea.form.originalOnSubmit = [];
        textArea.form.originalOnSubmit.push(textArea.form.onsubmit);
    }
   
    //get textrea value from RTE and run any original onSubmit events
    textArea.form.onsubmit = function(){
        textArea.value = editor.body.innerHTML;
        for (i in this.originalOnSubmit){
            return this.originalOnSubmit[i]();
        }
    }
   
    //resetting the form
    textArea.form.onreset = function(){
        if (window.confirm('<% = strResetWarningFormConfirm %>')){
            editor.body.innerHTML = '';
            return true;
        }
    return false;
    }

    //unload event so we don't loose the data
    window.onunload = function(){
        textArea.value = editor.body.innerHTML;
    }
}
Avatar billede mclemens Nybegynder
28. april 2006 - 22:51 #9
det er en nyere end den demo der lå på nettet 2 sekunder...
Avatar billede cyberkox Nybegynder
28. april 2006 - 22:57 #10
Jeg venter i spænding :D
Avatar billede mclemens Nybegynder
28. april 2006 - 22:59 #11
ikke sikker men prøv denne ... skal lige have lavet en function (udvidet ... men samtidig holde str nede) på de to knapper også - ellers fungerer de ikke i FF...


muligvis skal
%>      editor.addEventListener('click',
rettes til
%>      editor.addEventListener('onclick',

(check on både FF og IE accepterer nedenstående ... hvis FF fejler så prøv ovenstående rettelse...)


    function initIframe(){
<%

'IE uses contentEditable instead of designMode to prevent runtime errors in IE6.0.26 to IE6.0.28
'IE uses proprietary attachEvent instead of following the W3C Events module and using addEventListener
'IE SUCKS!!
If RTEenabled = "winIE" Then

%>      editor.attachEvent('onclick', function(){ed=document.getElementById('WebWizRTE').contentWindow.document.body;ed.contentEditable=true;ed.style.background='#fff';chks=document.getElementsByName("vis");chks[0].checked=true;chks[1].checked=false;});
        editor.attachEvent('onkeypress', editorEvents);
        editor.attachEvent('onmousedown', editorEvents);
        document.attachEvent('onmousedown', hideIframes);
        editor.body.contentEditable = false;
<%

'Gekco needs designMode enabled AFTER we listen for events using addEventListener
Else
%>      editor.addEventListener('click', function(){ed=document.getElementById('WebWizRTE').contentWindow.document;ed.designMode="on";ed.body.style.background='#fff';chks=document.getElementsByName("vis");chks[0].checked=true;chks[1].checked=false;}, true); 
        editor.addEventListener('keypress', editorEvents, true);
        editor.addEventListener('mousedown', editorEvents, true);
        document.addEventListener('mousedown', hideIframes, true);
        editor.designMode = 'off';
<%
End If

%>    }
Avatar billede cyberkox Nybegynder
28. april 2006 - 23:03 #12
Hmm, nu kommer der intet frem ?
Avatar billede mclemens Nybegynder
28. april 2006 - 23:03 #13
hmm, der er ikke meget besparelse af kode (hvis nogen overhovedet)
ved at lave en function ... prøv disse knapper:


<input type="radio" value="1" name="vis" onclick="ed=document.getElementById('WebWizRTE').contentWindow.document;ed.designMode='on';ed.body.contentEditable = true;ed.style.background='#fff';"> Ja


<input type="radio" value="0" checked="checked" name="vis" onclick="ed=document.getElementById('WebWizRTE').contentWindow.document;ed.designMode='off';ed.body.contentEditable = false;ed.style.background='#ccc';"> Nej
Avatar billede mclemens Nybegynder
28. april 2006 - 23:04 #14
Hmm, nu kommer der intet frem ?
... av, kigger lige på det ...
- ser lige om jeg kan downloade
og installere den nye udgave...
Avatar billede cyberkox Nybegynder
28. april 2006 - 23:06 #15
Ups, det var min fejl.. Jeg var kommet til at slette  function initIframe(){

Se. Nu virker det fint. Men:

1. Når man klikker ned på feltet skal radiobutton sætte hak i ja? Altså value = 1

2. Når den loades er den ikke deaktiveret ?
Avatar billede mclemens Nybegynder
28. april 2006 - 23:26 #16
ie delen ( den øverste )
--- FF driller mig lidt lige nu, men den kommer nok om lidt ...

%>        editor.attachEvent('onclick', function(){ed=document.getElementById('WebWizRTE').contentWindow.document.body;ed.contentEditable=true;ed.style.background='#fff';chks=document.getElementsByName("vis");chks[0].checked=true;chks[1].checked=false;});
        editor.attachEvent('onkeypress', editorEvents);
        editor.attachEvent('onkeypress', editorEvents);
        editor.attachEvent('onmousedown', editorEvents);
        document.attachEvent('onmousedown', hideIframes);
        editor.body.contentEditable = false;
                editor.body.style.background='#ccc';
<%
Avatar billede cyberkox Nybegynder
28. april 2006 - 23:27 #17
Jeg venter bar til du laver en der virker helt :).. Imens sætter jeg lidt flere point af som tak for din knoklen ;)
Avatar billede cyberkox Nybegynder
28. april 2006 - 23:45 #18
Jeg er nok væk indtil søndag, så der for jeg først tid til at kigge på din løsning. Indtil da, ha en go weekend ;)
Avatar billede mclemens Nybegynder
28. april 2006 - 23:51 #19
Lidt i blinde da jeg ikke har asp men her ... og god weekend :)



<input type="radio" value="1" name="vis" onclick="ed=document.getElementById('WebWizRTE').contentWindow.document;ed.designMode='on';ed.body.contentEditable = true;ed.body.style.background='#fff';"> Ja


<input type="radio" value="0" checked="checked" name="vis" onclick="ed=document.getElementById('WebWizRTE').contentWindow.document;ed.designMode='off';ed.body.contentEditable = false;ed.body.style.background='#ccc';"> Nej








    function initIframe(){
<%

'IE uses contentEditable instead of designMode to prevent runtime errors in IE6.0.26 to IE6.0.28
'IE uses proprietary attachEvent instead of following the W3C Events module and using addEventListener
'IE SUCKS!!
If RTEenabled = "winIE" Then

%>        editor.attachEvent('onclick', function(){ed=document.getElementById('WebWizRTE').contentWindow.document.body;ed.contentEditable=true;ed.style.background='#fff';chks=document.getElementsByName("vis");chks[0].checked=true;chks[1].checked=false;});
        editor.attachEvent('onkeypress', editorEvents);
        editor.attachEvent('onkeypress', editorEvents);
        editor.attachEvent('onmousedown', editorEvents);
        document.attachEvent('onmousedown', hideIframes);
        editor.body.contentEditable = false;
                editor.body.style.background='#ccc';
<%

'Gekco needs designMode enabled AFTER we listen for events using addEventListener
Else
%>      editor.addEventListener('click', function(){ed=document.getElementById('WebWizRTE').contentWindow.document;ed.designMode="on";ed.body.style.background='#fff';chks=document.getElementsByName("vis");chks[0].checked=true;chks[1].checked=false;}, true);

        editor.addEventListener('keypress', editorEvents, true);
        editor.addEventListener('mousedown', editorEvents, true);
        document.addEventListener('mousedown', hideIframes, true);
        editor.designMode = 'off';
                editor.body.style.background="#ccc";
<%
End If

%>    }
Avatar billede mclemens Nybegynder
29. april 2006 - 00:45 #20
... samt en lille updaterings bug-fixxer... tror jeg nok ...
Indsæt dette script på selve din hovedside:

<script type="text/javaScript">
function chkframe(){
  chks=document.getElementsByName("vis");if(chks[1].checked==false){
  ed=document.getElementById('WebWizRTE').contentWindow.document;
  ed.designMode="on";
  ed.body.contentEditable=true;
  ed.body.style.background='#fff';
}
}
</script>


... med hovedsiden mener jeg den der har en
<body onload="initialiseWebWizRTE();" ...

ret også lige den til ->

<body onload="initialiseWebWizRTE();chkframe();" ...
Avatar billede cyberkox Nybegynder
17. maj 2006 - 12:55 #21
Hmm, det virker helt forkert. Men jeg har med det du har skrevet fundet frem til en løsning ved at forsøge mig lidt frem. Det er ikke blevet til det som jeg ønskede, men kunden er glad nok for det.

Derfor deler vi point. Tusind tak for hjælpen :-)
Avatar billede mclemens Nybegynder
17. maj 2006 - 19:23 #22
ok :)
- 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