Autor Zpráva
Manny
Profil *
Ahoj, řeším problém, jak v textarea FCKEditoru nastavit maximální počet zadaných znaků a poté zobrazovat počet již napsaných (podobně jako je tomu u psaní SMSek s netu). Nestekali jste se někdo s tímto problémem a nevěděli byste, jak na něj vyzrát?

Skript pro klasickou textareu má funkční, nicméně se mi jej nedaří implementovat do FCK.

Díky za vaše názory;)
fuckin
Profil *
Moderátor Mistr: Celé téma bylo původně duplicitně též v sekci PHP. Proto ta zmínka o PHP.

toto nema s php nic spolecneho, ciste jen js..

Kdyz mas skript tak kde je problem? Budes volat udalost onChange a pokazde vypises pocet znaku ne?
Manny
Profil *
fuckin
co s onChange? ...on je problém, že když se snažím přidat událost do textarey FCKEditoru
			$Html .= "<textarea name=\"{$this->InstanceName}\" rows=\"4\" cols=\"40\" style=\"width: {$WidthCSS}; height: {$HeightCSS}\" onkeyup=limiter()>{$HtmlValue}</textarea>" ;


tak mi to nebere v potaz...

do textarea přidáno onkeyup=limiter()
fuckin
Profil *
kdyz jsi tak zminoval psani smsek na netu, tak proc se nepodivas tam jak to tam maji vyresene?

Btw s js si moc nerozumime ale preci jen neco znam ale unika me vyznam funkce limiter? Nechtels nahodou pocet znaku vypisovat? To znamena ze nactes pocet znaku a ulozis do promenne a budes vypisovat. A akorat tam pak nastavis ten limit, takze nechapu co to ma byt za fungujici skript z tve strany :)
Manny
Profil *
<script language=javascript>
//Edit the counter/limiter value as your wish
var count = "125";   //Example: var count = "175";
function limiter(){
var tex = document.myform.comment.value;
var len = tex.length;
if(len > count){
        tex = tex.substring(0,count);
        document.myform.comment.value =tex;
        return false;
}
document.myform.limit.value = count-len;
}

</script>

<form name="myform" METHOD=POST>
<textarea name=comment wrap=physical rows=3 cols=40 onkeyup=limiter()></textarea><br>
<script language=javascript>
document.write("<input type=text name=limit size=4 readonly value="+count+">");
</script>
</form>


Je nastaven určitý počet znaků, který může user zadat do textarey. V kolonce se mu ukazuje zbývající počet znaků. Tohle funguje jak má - jen se to snažím aplikovat na FCKEditor - a to je bohužel kámen úrazu - nedaří se mi to.
Chamurappi
Profil
Reaguji na Mannyho:
FCKEditor vyrábí <iframe>, do jehož <body> teprve člověk píše svůj formátovaný text. Skript počítající znaky v <textarea> na něj tudíž nemůže nikdy fungovat.
Manny
Profil *
Chamurappi
no a jak by se dal vyřešit ten můj problém? Je to vůbec nějakým způsobem možné?
fuckin
Profil *
jiny editor...nebo uvnitr fck
SmithHCoder
Profil *
Trebas se to bude nekomu hodit, chvilku mne to stalo. Funguje OK on form submit.

            var textLimit = 4000; 
            var FCKused = true; // by default Yes
            
            function checkTextLenght(){
                var text;
 
                if(FCKused){
                    // UNDER FCKEDITOR
                    var oEditor = FCKeditorAPI.GetInstance('text') ;
                    text = oEditor.GetHTML();
                } else {
                    // UNDER TEXTAREA ONLY
                    // text = document.forms["edit_text"]["text"].value; // by simple js
                    text = $("#text").val(); // by jQuery
                }
 
                if(text.length > textLimit){
                    alert('no');
                    return false;
                } else {
                    return true;
                }
            }

Moderátor Chamurappi: Vkládej prosím kódy mezi značky [pre] a [/pre] (stačí kliknout na ).

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0