Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #11 (permalink)  
Старый 21.10.2014, 12:49
III III вне форума
Аспирант
Отправить личное сообщение для III Посмотреть профиль Найти все сообщения от III
 
Регистрация: 08.10.2014
Сообщений: 80

Сообщение от danik.js Посмотреть сообщение
У тебя же не мультиселект. Так какого хрена все опшны помечены как selected?
Это я ошибочно selected вставил после первого пункта.

Последний раз редактировалось III, 21.10.2014 в 13:05.
Ответить с цитированием
  #12 (permalink)  
Старый 21.10.2014, 13:00
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

<html>
<body>
<select onchange="change(this.value);">
	<option value="0">Без ограничений</option>
	<option value="1">1</option>
	<option value="2">2</option>
	<option value="4">4</option>
	<option value="6">6</option>
	<option value="10">10</option>
</select>

<table border="1">
	<thead>
		<tr>
			<th scope="col">Поле 1</th>
			<th scope="col">Поле 2</th>
			<th scope="col">Поле 3</th>
			<th scope="col">Поле 4</th>
		</tr>
	</thead>

	<tbody id="dynamic"></tbody>
</table>

<script>
function getTr () {
	var tr = document.createElement('tr');
	
	var html = [
		'<td>',
			'<input type="text">',
		'</td>',
		'<td>',
			'<input type="text">',
		'</td>',
		'<td>',
			'<input type="text">',
		'</td>',
		'<td>',
			'<input type="text">',
		'</td>'].join('');
	
	tr.innerHTML = html;
	return tr;
}


var tb = document.querySelector('#dynamic')
function change (v) {
	console.log(v);
	
	if (v == 0) {
		Array.prototype.forEach.call(tb.children, function (tr) {
			tr.style.display = 'none';
		});
	} else {
		for (var i = 0; i < v; i++) {
			tb.appendChild(getTr());
		}
	}
}
</script>
</body>

</html>
Ответить с цитированием
  #13 (permalink)  
Старый 21.10.2014, 13:20
III III вне форума
Аспирант
Отправить личное сообщение для III Посмотреть профиль Найти все сообщения от III
 
Регистрация: 08.10.2014
Сообщений: 80

Спасибо за ответ, но строки-то добавляются, это и мой (ну не мой, если честно, а найденный в инете) скрипт делает, а вот таблица (с ее заголовоком) при выборе "Без ограничений" не скрывается.
В LiveCycle FormDesigner я делаю так:
<event activity="exit" name="event__exit">
               <script contentType="application/x-javascript">Table3.Row1.instanceManager.setInstances(К_воВод.rawValue);
this.resolveNode("Table3").presence = "visible";
</script>
            </event>
            <event activity="change" name="event__change">
               <script contentType="application/x-javascript">if ($.boundItem(xfa.event.newText) == "Без ограничений") {
  this.resolveNode("Table3").presence = "hidden";
}
</script>
            </event>

и все классно работает, а вот в HTML у меня не получается.
Ответить с цитированием
  #14 (permalink)  
Старый 21.10.2014, 13:38
Профессор
Отправить личное сообщение для skrudjmakdak Посмотреть профиль Найти все сообщения от skrudjmakdak
 
Регистрация: 27.04.2012
Сообщений: 1,410

ну дак, найдите вашу таблицу
var table = document.querySelector('table');
и скройте ее
table.style.visibility = 'hidden';
Ответить с цитированием
  #15 (permalink)  
Старый 21.10.2014, 15:11
BSI BSI вне форума
Аспирант
Отправить личное сообщение для BSI Посмотреть профиль Найти все сообщения от BSI
 
Регистрация: 01.06.2013
Сообщений: 48

Да дайте человеку конкретный рабочий код, который он просит. Видно же , что человек слабо знает эту тему, в инете может не один час искал и не нашел. Может он простой пользователь и ему это понадобится один раз в жизни. Надо то вставить в код наверное всего пару строк и дело с концом. Если бы я мог, то без проблем помог. Всем всего наилучшего.
Ответить с цитированием
  #16 (permalink)  
Старый 22.10.2014, 14:13
BSI BSI вне форума
Аспирант
Отправить личное сообщение для BSI Посмотреть профиль Найти все сообщения от BSI
 
Регистрация: 01.06.2013
Сообщений: 48

III, вот тебе правильное решение. Я хотя и не спец, но проблему твою решил. Пользуйся на здоровье.
<body>
 <p><strong>Динамическая таблица.</strong></p> 
                <caption>
                    <!-- Кол-во элементов option и их значения value можно задать произвольно //-->
                    <select id="rows_setup">
                        <option value="0">--Установить кол-во строк--</option>
                        <option value="0">Без ограничений</option>
                        <option value="1">1</option>
                        <option value="2">2</option>
                        <option value="4">4</option>
                        <option value="6">6</option>
                        <option value="10">10</option>
                    </select>
                </caption>		
 <p><p/>	
 <form id= Tablica method="post" action="">
            <table  width="650" border="1" cellspacing="0" cellpadding="5">
                <!-- Заголовки //-->				
                <thead>
                    <tr>
                        <th scope="col">Поле 1</th>
                        <th scope="col">Поле 2</th>
                        <th scope="col">Поле 3</th>
                        <th scope="col">Поле 4</th>
                    </tr>
                </thead>
                <!-- Сюда будем добавлять строки //-->
                <tbody id="dynamic"></tbody>
            </table>
        </form>
        <script>
            /* Навешиваем логику: */
            setupTable(
                "dynamic", /* ID элемента <tbody> таблицы */
                "rows_setup", /* ID элемента <select> для установки кол-ва строк */
                {1:"val1", 2:"val2", 3:"val3", 4:"val4"} /* Конфигурация строки таблицы */
            );
		function setupTable(tableId, selectId, fields) {
    var htmlTBody   = document.getElementById(tableId),
        htmlSelect  = document.getElementById(selectId),
        rowTpl      = document.createElement("TR");
    /* Строим шаблон строки таблицы один раз, в дальнейшем будем просто его клонировать */
    for(var field in fields) {
        if (false === fields.hasOwnProperty(field)) continue;
        var TD = document.createElement("TD"),
            INPUT = document.createElement("INPUT");
        INPUT.name = fields[field] + "[]";
        TD.appendChild(INPUT);
        rowTpl.appendChild(TD);
    }
    // Вешаем обработчик на элемент управления кол-вом строк
    htmlSelect.onchange = function (e) {
        var numRows = htmlSelect.options[htmlSelect.selectedIndex].value;
        /* Отслеживаем отрицательные значения а то мало ли какие там значения в option понаставят */
        numRows = numRows < 0 ? 0 : numRows;
        /* Удаляем те строки которые есть. */
        while(htmlTBody.firstChild) htmlTBody.removeChild(htmlTBody.firstChild);
        for (var i = 0; i < numRows; i++) {
            htmlTBody.appendChild(rowTpl.cloneNode(true));
        }
		if (numRows == 0) {
htmlTBody.parentNode.style.display = "none";
} else {
htmlTBody.parentNode.style.display = "";
} 
    };
}	
	</script>
    </body>
Ответить с цитированием
  #17 (permalink)  
Старый 22.10.2014, 15:31
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Сообщение от III
Необходимо доработать код так, чтобы все работало от одного (верхнего) выпадающего списка. Если выбрать "Без ограничений", то таблица скрылась, если иначе, то добавлялось, указанное количество строк. Помогите новичку.
Нашли говнокод по-js, логику приложения описать не смогли по-ру, какого спрашивается вообще тогда?

Не так это делается. Заводится 1 поле на 1 ячейку (кажется у вас на этом и кончается) которые тупо подсовываются в активную строку и используются тупо как таковые, ну, как input'ы. Данные с которых тупо валятся в обычный {} из которого по субмиту валятся то самое поле после JSON' и уходят таким макром на сервер, а там json_decode() и вперде.
Ответить с цитированием
  #18 (permalink)  
Старый 22.10.2014, 15:33
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Проблему представляют кнопки file, вот их да, придется размножать.
Ответить с цитированием
  #19 (permalink)  
Старый 22.10.2014, 17:38
BSI BSI вне форума
Аспирант
Отправить личное сообщение для BSI Посмотреть профиль Найти все сообщения от BSI
 
Регистрация: 01.06.2013
Сообщений: 48

Человек пишет:"Прошу строго не судить, я всего пару недель как осваиваю HTML и JS." Ему, я так понимаю, надо просто подсказать что, как и где писать в коде, а вы про сервер толкуете. Да он просто на простой странице хочет понять что к чему.
Ответить с цитированием
  #20 (permalink)  
Старый 22.10.2014, 17:43
Профессор
Отправить личное сообщение для kostyanet Посмотреть профиль Найти все сообщения от kostyanet
 
Регистрация: 23.10.2010
Сообщений: 2,718

Не гоните пургу, эту преамбулу паяют все кому западло признаться в невежестве.

Так вот начинающие 2 недели пишут return "Hello World" а не datagrid рисуют.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Добавление нескольких строк в таблицу CRYSIS_STALKER Общие вопросы Javascript 5 24.07.2014 22:03
Добавление строк в таблицу ded711 Общие вопросы Javascript 8 25.04.2014 08:23
Добавление строк в таблицу ded711 Общие вопросы Javascript 1 30.03.2014 16:52
Добавление строк в таблицу (JQuery) tiksi jQuery 2 16.05.2013 08:01
Добавление строк в таблицу stanlee Элементы интерфейса 13 11.06.2008 17:38