Размножение полей формы
День добрый.
Есть разметка <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <meta http-equiv="Content-Language" content="ru"> </head> <body> <form id="tasks" action="taskssave.asp"> <table style="width:70%;border-collapse:collapse;"> <tr> <th>Тип задачи</th> <th>Норма времени</th> <th>Объект привязки</th> </tr> <tr> <td><center><input type="text" name="task_name" required="required"></center></td> <td> <center> <select name="task_len"> <option value="5">5 мин.</option> <option value="10">10 мин.</option> <option value="15">15 мин.</option> <option value="20">20 мин.</option> <option value="25">25 мин.</option> <option value="30">30 мин.</option> <option value="35">35 мин.</option> <option value="40">40 мин.</option> <option value="45">45 мин.</option> <option value="50">50 мин.</option> <option value="55">55 мин.</option> <option value="60">60 мин.</option> <option value="90">90 мин.</option> <option value="120">120 мин.</option> <option value="180">180 мин.</option> </select> </center> </td> <td> <center> <select name="task_obj"> <option value="1">Звонки</option> <option value="2">Контакты</option> <option value="3">Контрагенты</option> </select> </center> </td> </tr> <tr> <td colspan="3"><br> <center><input type="submit" name="Сохранить"></center> </td> </tr> </table> </form> </body> </html> При этом оба раскрывающихся списка генерируются динамически (из БД) VBS-ом. Нужно размножать поля формы, чтобы не вводить задачи по одной. Например по принципу, как здесьhttp://ajaxs.ru/lesson/jq/121-razmno..._na_sajte.html Пробовали сами этот скрипт поправить, но не сумели. |
dpts,
какие имена будут у добавленных, кнопки удалить, добавить, теги thead и tbody где, js или jquery? |
Цитата:
- кнопки - да надо. - thead и tbody - а обязательно? - js |
Цитата:
![]() |
А если так:
<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=windows-1251"> <meta http-equiv="Content-Language" content="ru"> </head> <body> <form id="tasks" action="taskssave.asp"> <table style="width:70%;border-collapse:collapse;"> <tr> <th>Тип задачи</th> <th>Норма времени</th> <th>Объект привязки</th> <th> </th> </tr> <tr> <td><center><input type="text" name="task_name" required="required"></center></td> <td> <center> <select name="task_len"> <option value="5">5 мин.</option> <option value="10">10 мин.</option> <option value="15">15 мин.</option> <option value="20">20 мин.</option> <option value="25">25 мин.</option> <option value="30">30 мин.</option> <option value="35">35 мин.</option> <option value="40">40 мин.</option> <option value="45">45 мин.</option> <option value="50">50 мин.</option> <option value="55">55 мин.</option> <option value="60">60 мин.</option> <option value="90">90 мин.</option> <option value="120">120 мин.</option> <option value="180">180 мин.</option> </select> </center> </td> <td> <center> <select name="task_obj"> <option value="1">Звонки</option> <option value="2">Контакты</option> <option value="3">Контрагенты</option> </select> </center> </td> <td width="40px">Х<!-- это кнопка для удалить tr и поля в нем--></td> </tr> <tr> <td colspan="2" align="left"><br> +<!-- это кнопка для добавить tr с полями в нем--> </td> <td colspan="2" align="right"><br> <input type="submit" name="Сохранить"> </td> </tr> </table> </form> </body> </html> |
добавление строки в таблицу
dpts,
<!DOCTYPE HTML> <html> <head> <title>Untitled</title> <meta charset="utf-8"> <meta http-equiv="Content-Language" content="ru"> <style type="text/css"> tbody tr:first-child td:last-child{ visibility: hidden; } </style> </head> <body> <form id="tasks" action="taskssave.asp"> <table style="width:70%;border-collapse:collapse;"> <thead> <tr> <th>Тип задачи</th> <th>Норма времени</th> <th>Объект привязки</th> </tr> </thead> <tbody> <tr> <td><center><input type="text" name="task_name" required="required"></center></td> <td> <center> <select name="task_len"> <option value="5">5 мин.</option> <option value="10">10 мин.</option> <option value="15">15 мин.</option> <option value="20">20 мин.</option> <option value="25">25 мин.</option> <option value="30">30 мин.</option> <option value="35">35 мин.</option> <option value="40">40 мин.</option> <option value="45">45 мин.</option> <option value="50">50 мин.</option> <option value="55">55 мин.</option> <option value="60">60 мин.</option> <option value="90">90 мин.</option> <option value="120">120 мин.</option> <option value="180">180 мин.</option> </select> </center> </td> <td> <center> <select name="task_obj"> <option value="1">Звонки</option> <option value="2">Контакты</option> <option value="3">Контрагенты</option> </select> </center> </td> <td style="width: 60px;"><img border="0" alt="del" src="http://ajaxs.ru/demo/jq/add_input/delete.png" class="delete"></td> </tr> <tr> <td colspan="4"><br> <center><input type="button" value="Добавить поле" id="add" onclick="return add_new();"> <input type="submit" name="Сохранить"></center> </td> </tr> </tbody> </table> </form> <script> window.addEventListener("DOMContentLoaded", function() { var a = document.querySelector("#tasks"), b = a.querySelector("tbody"), d = b.querySelector("tr").cloneNode(!0); a.querySelector("#add").addEventListener("click", function() { var c = d.cloneNode(!0); c.addEventListener("click", function() { var a = event.target.classList; a && a.contains("delete") && b.removeChild(c) }); b.insertBefore(c, b.lastElementChild) }) }); </script> </body> </html> |
Работает, отлично, спасибо большое
|
когда прикручиваю к страничке перестает работать
1. Суть в том, что на странице кроме это еще вагон таблиц. В том числе и таблица с полями формы живет в DIVе, который тоже живет в таблице, и когда прикрутил
<style type="text/css"> tbody tr:first-child td:last-child{ visibility: hidden; } </style> "все пропало". 2. Временно убрал стили, поменял <img border="0" alt="del" src="http://ajaxs.ru/demo/jq/add_input/delete.png" class="delete"> на <span class="delete"><ul class="icons icons--stroke--header"><li class="iconsmall" style="top:3px;left:20px;"><svg viewbox="0 0 9 9"><use xlink:href="#close" transform="translate(0, 0) scale(.35)"></svg></li></ul></span> получили вот такого вида форму поле загрузки: на форме Плюс в кружочке работает, Галка в кружочке(отправка формы ) - работает. над плюсом появилось текстовое поле с крестиком в кружочке сразу после загрузки, крестик к этому полю работает - удаляет его, а вот крестик справа от строки с тремя полями - не работает... код после правок выглядит так: <form id="tasks" action="add.asp"> <center> <table id="table_container" class="setup"> <thead> <tr> <th class="setup" style="width: 45%">Тип задачи</th> <th class="setup">Норма времени</th> <th class="setup">Привязать объект</th> <th class="setup-del-row"> </th> </tr> </thead> <tbody> <tr> <td class="setup"><center><input size="60" class="big" type="text" name="task_name" required="required"></center></td> <td class="setup"> <center> <select name="task_len"> <option value="5">5 мин.</option> <option value="10">10 мин.</option> <option value="15">15 мин.</option> <option value="20">20 мин.</option> <option value="25">25 мин.</option> <option value="30">30 мин.</option> <option value="35">35 мин.</option> <option value="40">40 мин.</option> <option value="45">45 мин.</option> <option value="50">50 мин.</option> <option value="55">55 мин.</option> <option value="60">60 мин.</option> <option value="90">90 мин.</option> <option value="120">120 мин.</option> <option value="180">180 мин.</option> </select> </center> </td> <td class="setup"> <center> <select name="task_obj"> <option value="1">Звонки</option> <option value="2">Контакты</option> <option value="3">Контрагенты</option> </select> </center> </td> <td class="setup-del-row"><span class="delete"><ul class="icons icons--stroke--header"><li class="iconsmall" style="top:3px;left:20px;"><svg viewbox="0 0 9 9"><use xlink:href="#close" transform="translate(0, 0) scale(.35)"></svg></li></ul></span></td> </tr> </tbody> <tr> <td colspan="2" align="left"> <span id="add" onclick="return add_new();"> <ul class="icons icons--stroke"> <li class="icon"> <a> <svg viewbox="0 0 9 9"> <use xlink:href="#add" transform="translate(0, 0) scale(.35)"> </svg> </a> </li> </ul> </span> </td> <td align="right"> <button class="for-svg" type="submit"> <ul class="icons icons--stroke"> <li class="icon" style="top:-19px;left:-11px;"> <svg viewbox="0 0 9 9"> <use xlink:href="#save" transform="translate(0, 0) scale(.35)"> </svg> </li> </ul> </button> </td> </tr> </table> </form> <script> window.addEventListener("DOMContentLoaded", function() { var a = document.querySelector("#tasks"), b = a.querySelector("tbody"), d = b.querySelector("tr").cloneNode(!0); a.querySelector("#add").addEventListener("click", function() { var c = d.cloneNode(!0); c.addEventListener("click", function() { var a = event.target.classList; a && a.contains("delete") && b.removeChild(c) }); b.insertBefore(c, b.lastElementChild) }) }); </script> |
https://yadi.sk/i/r5EwEW8Vmb8Di вот так выглядит форма |
С артефактом в виде лишнего поля с крестиком разобрался
Как починить удаление?
|
Часовой пояс GMT +3, время: 01:00. |