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 № 1Czy 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