child-компонент растягивает parent' а (IE8)
У меня есть таблица из одного row в котором 3 ячейки;
в 3й ячейке есть input типа text; заполняю input типа text значением, которое больше чем область отображения (ширина значения больше ширины input' а); затем привожу все компоненты формы в состояние disabled; и тут проблема - input растягивается под размер своего значения и заодно растягивает таблицу! то-есть изначально заданное мной отношение для 3 ячеек 40%-20%-40% меняется в пользу проблемной ячейки... посмотрите пожалуйста видео с демонстрацией этой проблемы и подскажите чего делать: http://www.youtube.com/watch?v=yX9iw3PQ_eg |
Цитата:
|
Цитата:
<html> <HEAD> <meta charset="utf-8"> <title></title> <script type="text/javascript">
function toggleById() {
toggleDisabled(document.getElementById("tableCell"));
}
function toggleDisabled(el) {
try {
el.disabled = !el.disabled ? true: false;
}
catch(err) {
alert(el.nodeName + "\u0020" + err.description);
}
if (el.childNodes && el.childNodes.length > 0) {
for (var x = 0; x < el.childNodes.length; x++) {
toggleDisabled(el.childNodes[x]);
}
}
}
</script>
</HEAD>
<body>
<table border="1" width="100%">
<tr>
<td width="40%">
<input type="button" value="Toggle disable" onclick="toggleById();" />
</td>
<td width="20%">
</td>
<td width="40%">
<div id="tableCell">
<input type="text" style="width: 100%;" />
</div>
</td>
</tr>
</table>
</body>
</html>
|
Цитата:
catch(err) {
alert(el.nodeName + "\u0020" + err.description);
}
Цитата:
|
Цитата:
Исключение мне ни о чём не говорит, поэтому и созданна эта тема. Я активно использую для layout элемент типа <table> потому что он более предсказуемый чем <div>, для меня по крайней мере. В полной версии страницы гораздо больше компонентов, поэтому кажется, что в примере есть избыточный код... Как избежать этот глюк с disable? |
Цитата:
Вот это у меня работает без проблем...
<!DOCTYPE html>
<html>
<head>
<!--
<script src="http://code.jquery.com/jquery-latest.js"></script>
<link rel="stylesheet" type="text/css" href="tmp.css" />
-->
<style type="text/css">
</style>
<script type="text/javascript">
function Off() {
document.getElementById('test').disabled=true;
}
</script>
</head>
<body>
<table border="1" width="100%">
<tr>
<td width="40%">
<input type="button" value="Toggle disable" onclick="Off();" />
</td>
<td width="20%">
</td>
<td width="40%">
<div id="tableCell">
<input id='test' type="text" style="width: 100%;" />
</div>
</td>
</tr>
</table>
</body>
</html>
|
Цитата:
|
Цитата:
Цитата:
Или так и будем в "загадки" играть? :D |
Цитата:
Просто я считаю неправильным - в одном методе JS который ответственный за изменение состояния 10+ компонентов, 10+ раз вызывать getById для каждого компонента в отдельности с их собственными Id. Гораздо более изящно - рекурсивный проход по документу, что я и делаю. А IE8 падает на изменении свойства disabled. Скорее всего из-за падения и происходит этот дикий resize текстового поля. Вопрос - почему? |
Цитата:
Цитата:
Цитата:
Делай нормальные примеры - будет шанс получать нормальные ответы. А пока элемент один - вот и обращаются к нему как к одному. А не через такие выверты как у тебя... :D |
| Часовой пояс GMT +3, время: 06:13. |