Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zasięg JS i reagowanie na pola formularza
scanner
post
Post #1





Grupa: Zarząd
Postów: 3 503
Pomógł: 28
Dołączył: 17.10.2002
Skąd: Wrocław




Witajcie.

Zakładając, ze mam strone opartą na <frameset>, mam pytanie odnoście "zasięgu" JS.
Czy jeżeli w pliku definiującym tenże frameset będzie napisana pewna funckja JS, to czy będzie ona widoczna w każdej ramce? Czy (bardziej prawdopodobne) każda ramka musi mieć własną kopię tej funkcji?

Oraz druga sprawa:
Potrzebuję funkcję JS, która będzie wywoływana przy każdej zmianie dowolnego pola tekstowego w dowolnej ramce sprawdzała czy to co zostało wpisane pasuje do wzorca.

Pomożecie?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Paul
post
Post #2





Grupa: Zarejestrowani
Postów: 636
Pomógł: 0
Dołączył: 22.10.2003
Skąd: Katowice

Ostrzeżenie: (0%)
-----


1. Bedzie widoczna. Trzeba sie odwolac wtedy do funkcji przez obiekt parent lub top.

2. Napisalem cos takiego... Funkcja nadaje wszystkim polom tekstowym zdarzenie onchange ktore wywoluje funkcje sprawdzajaca ze wzorcem. Jesli dobrze zrozumialem to mniej wiecej oto chodzilo.

Kod
<script type="text/javascript">
var reg_exp;
function sprawdz(tmp) {
   reg_exp = tmp;
   ramki = window.frames;
  
   for(i = 0; i < ramki.length; i++) {
      formularze =  ramki[ i ].document.forms;  
      
      for(i2 = 0; i2 < formularze.length; i2++) {
         elementy = formularze[ i2 ].elements;
        
         for(i3 = 0; i3 < elementy.length; i3++) {
        
            if(elementy[ i3 ].type == 'text') {
               elementy[ i3 ].onchange = wzorzec;
            }
         }
      }
   }
}

function wzorzec(e) {  
   if(e) {
       obj = e.target;
   } else {
      var obj;
      for(i = 0; !obj; i++) {
         obj = window.frames[ i ].event.srcElement;
      }
   }
    if( !obj.value.match(reg_exp) ) {
       alert('Nie pasuje do wzorca: ' + reg_exp);
    }
}

</script>
<frameset cols="50%,*">
<frame src="ramka1.htm" name="ramka1">
<frame src="ramka2.htm" name="ramka2">
</frameset>


ramka1.htm
Kod
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
</head>
<body>
Tylko małe i duże litery od A do Z.<br><br>
<form style="margin-top:0;">
<input type="text" id="input1_1"><br><br>
<input type="text" id="input1_2"><br><br>
<input type="text" id="input1_3"><br><br>
</form>
</body>
</html>


ramka2.htm
Kod
<html>
<head>
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-2">
</head>
<body onload="top.sprawdz( /^[a-z]*$/i );"><br><br>
<form style="margin-top:0;">
<input type="text" id="input2_1"><br><br>
<input type="text" id="input2_2"><br><br>
<input type="text" id="input2_3"><br><br>
</form>
</body>
</html>


PS. [ CODE ] dlatego, zeby zachowac formatowanie.

Ten post edytował Paul 28.10.2004, 16:33:53
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 12.10.2025 - 18:00