Cześć,

Natknęłam się na dosyć trudny, a zarazem wydaje mi się banalny problem w JavaScript.
Napisałam skrypt zliczający ilość znaków w formularzu i wyświetlający ile pozostało jeszcze do wstawienia.

Jednak mam problem by to uruchomić:

Ta wersja działa poprawnie i zlicza mi ilość znaków:


Kod js
Kod
<script language="javascript" type="text/javascript">
    
    function zliczaj(string,ilosc) {
        var maxLength = ilosc;
        var obiekt = document.getElementById('tutajwyswietl');
        obiekt.innerHTML = 'Pozostało <strong>'+ (maxLength - ( string.length ) ) +'</strong> znaków';
        if( maxLength - ( string.length ) < 0 ) {
            obiekt.innerHTML = 'Wiadomość za długa o <strong>'+ (( string.length ) - maxLength) +'</strong> znaków';
            document.getElementById( 'przeslij' ).disabled=true;
        }
        else {
        document.getElementById( 'przeslij' ).disabled=false;
        }
    
    }
    
</script>



Wywołanie:

Kod
<label for="tytul">1.Wpisz tytuł pytania <span id="tutajwyswietl">pozostało <strong>110</strong> znaków</span></label>
        <input type="text" name="tytul" id="tytul" maxlength="110" onkeyup="zliczaj(this.value,110);"/>





Chciałbym jednak, aby automatycznie możnabyło dostosować skrypt zliczający do różnych pól w formularzu.
Będę miała pole INPUT i TEXTAREA i chciałaby wywoływać skrypt w taki sposób:
Kod
onkeyup="zliczaj(this.value, ILOŚĆ ZNAKÓW, ID GDZIE MA BYĆ WYŚWIETLONA INFORMACJA ILE POZOSTAŁO ZNAKÓW);"


Czyli dla powyższego przykładu
Kod
onkeyup="zliczaj(this.value,110,tutajwyswietl);"





Zrobiłam to w taki sposób:

Kod
function zliczaj(string,ilosc,liczw) {
        var maxLength = ilosc;
        var obiekt = document.getElementById(liczw);
        obiekt.innerHTML = 'Pozostało <strong>'+ (maxLength - ( string.length ) ) +'</strong> znaków';
        if( maxLength - ( string.length ) < 0 ) {
            obiekt.innerHTML = 'Wiadomość za długa o <strong>'+ (( string.length ) - maxLength) +'</strong> znaków';
            document.getElementById( 'przeslij' ).disabled=true;
        }
        else {
        document.getElementById( 'przeslij' ).disabled=false;
        }
    
    }


Kod
<label for="tytul">1.Wpisz tytuł pytania <span id="licztytul">pozostało <strong>110</strong> znaków</span></label>
<input type="text" name="tytul" id="tytul" maxlength="110" onkeyup="zliczaj(this.value,110,licztytul);"/>



Lecz niestety nie działa i nie zlicza, wydaje mi się że problem jest w lini
Kod
var obiekt = document.getElementById(liczw);

Niestety moja znajomość JavaScript jest ograniczona do minimum. Tak więc nawet nie mam pojęcia czy jest to problem składniowy czy też nie.


Bardzo proszę o pomoc smile.gif

Natalka smile.gif