Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [JavaScript] Dynamiczne dodanie ostylowanego file inputa w jquery
alano
post 10.07.2012, 08:42:23
Post #1





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 16.03.2009

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


Hej,

Korzystam z niewielkiego kodu w jQuery za pomocą, którego dodaję sobie dodatkowego file inputa. Czyli docelowo wyświetla się 1 file input z przyciskiem "dodaj kolejny", naciśnięcie tego przycisku dodaje drugiego file inputa. Problem polega na tym, że ten file input jest ostylowany za pomocą jQuery uniform - sexy forms (http://uniformjs.com/) i gdy się on dodaje to jest nieostylowany. Dlaczego tak się dzieje? Jak to można rozwiązać?

Kod, który odpowiada za dodanie file inputa:

CODE
var scntDiv = $('#p_scents');
var i = $('#p_scents p').size() + 1;

$('#addScnt').live('click', function() {
$('<p><label for="p_scnts"><input type="file" class="fileInput" id="p_scnt" name="p_scnt_' + i +'" /></label> <a href="#" id="remScnt">Usuń</a></p>').appendTo(scntDiv);
i++;
return false;
});

$('#remScnt').live('click', function() {
if( i > 2 ) {
$(this).parents('p').remove();
i--;
}
return false;
});

$('#addScnt').live('click', function() {
if( i > 3 ) {
$('#addScnt').addClass('disabled-input');
}
return false;
});

$('#remScnt').live('click', function() {

$('#addScnt').removeClass('disabled-input');

return false;
});
Go to the top of the page
+Quote Post
piotrex41
post 10.07.2012, 08:45:51
Post #2





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


A może przy dodawaniu inputa użyj .addClass() w jQuery, który nada mu odpowiednią klasę CSS z odpowiednim stylem?


--------------------
www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion
Go to the top of the page
+Quote Post
alano
post 10.07.2012, 08:53:20
Post #3





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 16.03.2009

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


Tak, patrzę, że input ten jest id i bez klasy jest nadal ostylowany, czyli pewnie uniform zrobił replace-a tego elementu. W kodzie HTML wstawiam coś takiego:
CODE
<input type="file" class="" id="" />


Gdy odpalam stronę to ten skrypt wyświetla coś takiego:

CODE
<div class="uploader">
<input id="" class="" type="file" size="18.5" style="opacity: 0;">
<span class="filename" style="-moz-user-select: none;">Wybierz plik...</span>
<span class="action" style="-moz-user-select: none;">Choose File</span>
</div>
Go to the top of the page
+Quote Post
piotrex41
post 10.07.2012, 09:06:34
Post #4





Grupa: Zarejestrowani
Postów: 168
Pomógł: 26
Dołączył: 15.09.2011
Skąd: Wrocław

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


To może spróbuj w CSS dać żeby każdy input type="file" w danym DIVie miał jakiś styl.
  1. div.uploader input[type=file]
  2. {
  3. // style dla inputa
  4. }

Wtedy niezależnie jak dodasz inputa to powinien on odziedziczyć styl z CSSa.


--------------------
www.piotrex41.pl - piotrex41 portfolio
d(-.-)b - Music is my life || PHP is my passion
Go to the top of the page
+Quote Post
alano
post 10.07.2012, 09:13:31
Post #5





Grupa: Zarejestrowani
Postów: 51
Pomógł: 0
Dołączył: 16.03.2009

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


wiesz co, udało mi się smile.gif Znalazłem coś takiego: http://www.mdelrosso.com/sheepit/index.php?lng=en_GB

To chyba działa na innej zasadzie, clone(); i tak pykło.

Dzięki za chęć pomocy smile.gif Może to tobie też się przyda. Pzdr.
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 Wersja Lo-Fi Aktualny czas: 22.07.2025 - 16:25