Krzysztof Z.

Krzysztof Z. Programista PHP/
Webdeveloper

Temat: Problem z .attr

Witam, mam taki prosty kod dodający pole do formularza:

$("#add_photo").click(function()
{
var input = $("<input>").attr("type", "text");
var div = $("#up_photos");
div.append(input);
});

Powinien działać poprawnie jednak tak nie jest...
jeśli usunę attr to działa.
Co jest nie tak w tym kodzie?
Pozdrawiam
Szymon Piłkowski

Szymon Piłkowski Senior JavaScript
Developer

Temat: Problem z .attr

a co Ty probujesz zrobic? jesli dobrze rozumiem, to:
- po pierwsze, to "input" a nie "<input>" - chyba ze to jakis feature sizzle'a ktorego nie znam.
- po drugie, jesli probujesz wybrac element o atrybucie "type" rownym "text", to nie powinienes uzywac metody attr, tylko okreslic to w selektorze (ew. uzyc metody filter). (attr sluzy do pobierania/ustawiania atrybutow)
- po trzecie, cache'owanie elementow DOM nie ma sensu jesli nie odwolujesz sie do nich wiecej niz raz.
czyli w skrocie powinno byc jakos tak:

$("#add_photo").click(function() {
$("#up_photos").append( $("input[type=text]") );
});
Krzysztof Z.

Krzysztof Z. Programista PHP/
Webdeveloper

Temat: Problem z .attr

Szymon Piłkowski:
a co Ty probujesz zrobic? jesli dobrze rozumiem, to:
- po pierwsze, to "input" a nie "<input>" - chyba ze to jakis feature sizzle'a ktorego nie znam.
- po drugie, jesli probujesz wybrac element o atrybucie "type" rownym "text", to nie powinienes uzywac metody attr, tylko okreslic to w selektorze (ew. uzyc metody filter). (attr sluzy do pobierania/ustawiania atrybutow)
- po trzecie, cache'owanie elementow DOM nie ma sensu jesli nie odwolujesz sie do nich wiecej niz raz.
czyli w skrocie powinno byc jakos tak:

$("#add_photo").click(function() {
$("#up_photos").append( $("input[type=text]") );
});
Chcę dodawać X inputów do formularza. za każdym razem kliknę np w link dodaj pole ma sie pojawiać nowy input.Krzysztof Z. edytował(a) ten post dnia 02.08.10 o godzinie 15:38
Szymon Piłkowski

Szymon Piłkowski Senior JavaScript
Developer

Temat: Problem z .attr


$("#add_photo").click(function() {
$("#up_photos").append('<input type="text" />');
});
Szymon Piłkowski edytował(a) ten post dnia 02.08.10 o godzinie 16:49
Krzysztof Z.

Krzysztof Z. Programista PHP/
Webdeveloper

Temat: Problem z .attr


var i = 2;
$("#add_photo").click(function()
{
var ii = i++;
$("#up_photos").append('<tr id="row_"+ii+><td><input type="text"/></td><td><img src="delete.jpg" id="delete_photo_+ii+" /></td></tr>');
$("#delete_photo_"+ii).click(function(){
$("#row_"+ii).remove();
});
});

Dzięki ;)
Poszedłem o krok dalej i chciałem zrobić również usuwanie x-tego formularza.

Następna dyskusja:

problem z selektorami




Wyślij zaproszenie do