Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zmiana typu obiektu input - type="text" i IE
zacharyjos
post
Post #1





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.04.2009

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


Witam
To mój pierwszy post na forum. Zmieniam skryptem js pole formularza input "upload pliku" file, na text:
Kod
document.formularz_dodaj.p_nazwa.type="text;"

W FF i Operze działa świetnie natomiast nie chce w IE. Pojawia się komunikat:
Cytat
Nie można odczytać właściwości: type. To polecenie nie jest obsługiwane.


Czy można jakoś inaczej zmienić typ obiektu input file?
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
kilas88
post
Post #2





Grupa: Zarejestrowani
Postów: 305
Pomógł: 25
Dołączył: 27.01.2007

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


Input zagnieżdżasz w jakimś elemencie nadrzędnym (np. DIV). Następnie chcąc zmienić typ pola - zmieniasz zawartość pola DIV (innerHTML) wstawiając nowe pole. Możesz też wyczyścic ten DIV i działać na modelu DOM.
Go to the top of the page
+Quote Post
zacharyjos
post
Post #3





Grupa: Zarejestrowani
Postów: 5
Pomógł: 0
Dołączył: 4.04.2009

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


Cytat(kilas88 @ 4.04.2009, 15:15:39 ) *
Input zagnieżdżasz w jakimś elemencie nadrzędnym (np. DIV). Następnie chcąc zmienić typ pola - zmieniasz zawartość pola DIV (innerHTML) wstawiając nowe pole. Możesz też wyczyścić ten DIV i działać na modelu DOM.

Jestem żółtodziobem. W js siedzę dopiero 4godziny ;/
Czytałem, że innerHTML nie jest żadnym standardem, więc wolałbym z niego nie korzystać.
Wolałbym skorzystać z modelu DOM. Czy ten zapis, który używam w wyżej podanym skrypcie to jest z modelu DOM?

Cytat(kilas88 @ 4.04.2009, 15:15:39 ) *
Input zagnieżdżasz w jakimś elemencie nadrzędnym

Kod
<span class="postcolor"><form name="formularz_dodaj"</span> metod="... >
          <input name="<span class="postcolor">p_nazwa</span>" type="file" /> .....
      </form>

Elementem nadrzędnym jest formularz. I właśnie wyżej podany zapis działa w FF, nie działa w IE. Jak przechytrzyć IE?

Ten post edytował zacharyjos 4.04.2009, 16:30:20
Go to the top of the page
+Quote Post
kilas88
post
Post #4





Grupa: Zarejestrowani
Postów: 305
Pomógł: 25
Dołączył: 27.01.2007

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


Twój przykład nie dotyczy DOM.

Możesz zrobić :

Kod
<div id="pole">
  <input type="text" id="stary" />
</div>

<input type="button" value="zmień input" onclick="zmien_przycisk()" />

<script type="text/javascript">
  function zmien_przycisk() {
    var stary_element = document.getElementById('stary');

    var pole = document.getElementById('pole');
    pole.removeChild(stary_element);

    var nowy_element = document.createElement('input');
    nowy_element.type = 'file';
    
    pole.appendChild(nowy_element);
  }
</script>


Przy pomocy innerHTML łatwiej i wcale nie tak wbrew standardom.

Pozdrawiam.
Go to the top of the page
+Quote Post
kilas88
post
Post #5





Grupa: Zarejestrowani
Postów: 305
Pomógł: 25
Dołączył: 27.01.2007

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


Cytat(Rafael @ 4.04.2009, 20:12:41 ) *
mógłbyś nieco rozwinąć myśl?


innerHTML znajduje się w dokumentacji modelu DOM. dlaczego by nie korzystać z tej właściwości ?
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 19.08.2025 - 20:11