![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Mam taki kod:
Kod $("input[type='text']").keypress(function(e) { }) Chodzi o oto, że chce przed keypress dac coś w stylu pe='text']").ready(function(){}).keyp lub pe='text']").load(function(){}).keyp . Jednak żadne z tych nie działa. Czy jest coś takiego jak jakby .create. Wiadomo o co chodzi? Ten post edytował expert 10.01.2013, 19:59:34 |
|
|
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat Wiadomo o co chodzi? Nie wiadomo. Napisz jeszcze raz, opisując znacznie dokładnie. -------------------- |
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
To inaczej.
Powiedzmy mam na stronie klika input, z czego dwa są typu text. Do nich odwołuje się za pomocą $("input[type='text']"). Chce je zamienić na <input type="password">, ale za pomocą attr nie można zmieniać typów elementów, które są już na stronie. Można jedynie wywalić stary element i zastąpić go nowym. Chce skopiować też do nowego input wszystkie parametry starego np. class, id, value itp. Czyli chce zamienić type 'text' na type='password'. Dla tego myślałem, żeby zrobić to w funkcji typu load albo ready dla input. Zobaczę, bo może each coś da sie wykombinować. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Cytat ale za pomocą attr nie można zmieniać typów elementów Nie używam z reguły jQuery, ale z tego co pamiętam to można. Nic nie stoi na przeszkodzie. A jak z jakiś niepojętych dla mnie względów się nie da to w czystym JS da się na pewno, bo nie raz to robiłem. Więc pobierz referencję do elementu( get ) i zmienić atrybut( element.setAttribute ) Pokaż jak próbowałeś z attr. -------------------- |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dla przykladu:
Co ciekawe w wordpress przy zmianie hasła skrypt zmienia jakoś atrybut type. Póki co zrobiłem to tak:
http://jsfiddle.net/mtYWe/ |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
No i ten pierwszy kod działa. Nie wiem po co kombinujesz. http://jsfiddle.net/mtYWe/1/
-------------------- |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
No i ten pierwszy kod działa. Nie wiem po co kombinujesz. http://jsfiddle.net/mtYWe/1/ Hmmm... Faktycznie, to coś musiałem sknocić pisząc kod u siebie. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 1 675 Pomógł: 286 Dołączył: 15.06.2009 Skąd: Wieliczka Ostrzeżenie: (0%) ![]() ![]() |
Nie używam z reguły jQuery, ale z tego co pamiętam to można. Nic nie stoi na przeszkodzie. A jak z jakiś niepojętych dla mnie względów się nie da to w czystym JS da się na pewno, bo nie raz to robiłem. Więc pobierz referencję do elementu( get ) i zmienić atrybut( element.setAttribute ) Pokaż jak próbowałeś z attr. niektóre przeglądarki (z tego co pamiętam to np. IE bądź Chrome) nie pozwalają na zmianę typu inputa ze względów bezpieczeństwa ![]() |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Jednak nie działa, kąbinuję czemu.
http://siekier.pl/test.html |
|
|
![]()
Post
#10
|
|
![]() Grupa: Zarejestrowani Postów: 2 350 Pomógł: 512 Dołączył: 4.01.2009 Skąd: Wrocław / Świdnica Ostrzeżenie: (0%) ![]() ![]() |
Rzeczywiście jQuery zabrania:
Cytat Note: jQuery prohibits changing the type attribute on an <input> or <button> element and will throw an error in all browsers. This is because the type attribute cannot be changed in Internet Explorer. Zrób tak jak pisałem( pod IE możliwe, że się nie da zrobić ze względów bezpieczeństwa ): Kod $(function() { $("input[type='text']").each(function(i,j){ $(this).get(0).setAttribute("type","password"); }); }); --edit-- Cytat kąbinuję czemu. http://www.sjp.pl/kombinowa%E6 Ten post edytował kamil4u 11.01.2013, 20:35:07 -------------------- |
|
|
![]()
Post
#11
|
|
![]() Grupa: Zarejestrowani Postów: 211 Pomógł: 4 Dołączył: 29.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Zrób tak jak pisałem( pod IE możliwe, że się nie da zrobić ze względów bezpieczeństwa ): Kod $(function() { $("input[type='text']").each(function(i,j){ $(this).get(0).setAttribute("type","password"); }); }); To działa najpewniej. IE z $.attr() ma jakieś problemy, choć pod innymi przeglądarkami działa ok. EDIT: Wiem chyba z czego wynika różnica działania skyptu. W JsFiddle jak ustawię jQuery(edge) to działa, ale jak ustawie samo jQery np. 1.8.2 to już nie działa. Sprawdzałem po FF i IE. Czegoś mi w moim skrypcie brakuje... EDIT: Jest jakiś inny kod http://code.jquery.com/jquery-git.js i http://code.jquery.com/jquery.js Nie wiem na czym polega różnica. Ten post edytował expert 11.01.2013, 22:43:41 |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 07:16 |