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>
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);"/>
<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;
}
}
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);"/>
<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

Natalka
