Checkbox+jQuery+IE6
Как же достал это злоебучий IE6!!! Недавно, а точнее неделю назад нашел баг, но локализировать и описать его время появилось тока сейчас. Задача была довольно простая, было две формы и набор checkbox'ов в котором храниться текущее состояние приложения, надо было его отправлять вместе с обоими формами, поэтому я разместил его в одной, а во второй на onsubmit повесил функцию которая забирает их из первой. Пока я разрабатывал под Firefox'ом, как бы все работало как часы, а когда тестеры тестировали под IE6 ничего не работало вообще. У меня естественно стоит IE8b2, потому что там консоль, и баги этой не видно, протестировать нормально нельзя. Начал дебажить java код и действительно данные от checkbox'ов не приходят, поставил снифер перед браузером - данные не отправлены. В общем через пол часа танцев с бубном я вычислил проблемный кусок кода. А теперь покажу его вам и покажу свой workaround, а вы если знаете лучший способ - напишите в каментах.
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<head>
<title>Checkbox+jQuery+IE6</title>
<script src="jquery-1.2.6.js"></script>
<script>
$().ready(function(){
$("#form1").submit(function(){
$("#form2 :checkbox").remove().appendTo(this);
//$(this).append($("#form2").html());$("#form2").html("") // IE6 fix
return false;
})
})
</script>
</head>
<body>
<form name="form1" id="form1" action="">
<input type="submit" name="submit" value="submit"/>
</form>
<form name="form2" id="form2" action="">
<input type="checkbox" name="checkbox" value="checkbox1"/>
<input type="checkbox" name="checkbox" value="checkbox2"/>
<input type="checkbox" name="checkbox" value="checkbox3"/>
</form>
</body>
</html>
UPD 20.03.2009: Бага к сожалению не пропала и в jQuery 1.3.2
Свежие комментарии