/ / Tworzenie <button> z jQuery ignoruje atrybut type - jquery, html, dom-manipulation

Tworzenie <button> z jQuery ignoruje atrybut type - jquery, html, dom-manipulation

Próbuję utworzyć kilka przycisków za pomocą jQuery, z komendami takimi jak to:

$("<button></button>", { type: "reset", id: "reset", name: "reset" })
.text("Reset all fields").appendTo(target);

Działa to całkiem dobrze, z wyjątkiem tego, że przyciski są tworzone bez type atrybut.

To jest to czego chcę:

<button type="reset" id="reset" name="reset">Reset all fields</button>

ale rozumiem to:

<button id="reset" name="reset">Reset all fields</button>

tj type="reset" brakuje. Próbowałem go osobno dodać .attr(), ale to nie pomaga, atrybut jest po prostu ignorowany. Czego tu mi brakuje?

Używam jQuery 1.4.4. Jak zauważono w komentarzach, działa to w najnowszej wersji jQuery, ale to nie jest ta w naszym systemie i nie wiem, co może się zepsuć, jeśli dokonamy aktualizacji, więc wolałbym rozwiązać to z istniejącą wersją.

Odpowiedzi:

3 dla odpowiedzi № 1

Czy rozważyłeś właśnie zrobienie

 $("<button type="reset" id="reset" name="reset">Reset all fields</button>").appendTo(target);

3 dla odpowiedzi № 2

Powodem, dla którego to nie działa, jest to, że type atrybut przycisku HTML jest tylko do odczytu po utworzeniu przycisku.

Oznacza to, że nie można zmienić rodzaju przycisku, a więc, jak wskazał Sam w swojej odpowiedzi, najlepszą opcją jest dodanie typu do przycisku w tym samym czasie, gdy tworzy się przycisk.

$("<button type="reset"></button>");

Jeśli spojrzysz w swojej konsoli błędów podczas "rozwijania się", znacznie szybciej złapiesz tego typu błędy.

W przypadku kodu, który podałeś, konsola błędów Firefox mówi nam:

Error: uncaught exception: type property can"t be changed