[web,javascript] добавление произвольного числа однотипных объектов

wwoland

Как проще всего реализовать это.
Желательно без смены УРЛ.
МБ с помощью JavaScript?
Мб есть примеры подобных вещей на сайтах каких в инете?

uncle17


<script>
function add
{
var a = document.getElementById("qnt").value;
for (var i=1, i<=a, i++)
{
document.getElementById("div_for_objects").innerHTML += '<input type="text" name="field'+i+'"><br>';
}
}
</script>
Добавить <input type=text id="qnt"> полей для ввода <input type="button" value="Go!" onclick="javascript:add;">

<div id="div_for_objects">
<input type="text" name="field0"><br>
</div>

Updated: выходит... это я эдеод

kruzer25

-1. Труъ - это appendChild.

pilot

Почему?

pilot

не, не выходит...
Функцию add забыл.

uncle17

ну да... уже исправил и подписал

wwoland

Ну я что-то типа такого и подумывал, но не знаток в JS особо :)
Спасиб
Если есть еще варианты, то будет здорово :)

uncle17

щас пенартур пальцы погнет

wwoland

А еще вопросец, каие есть наиболее популярные и качественные JS библиотечки?
Не подскажете, ну и чтоб свободные были :)

pitrik2

А еще вопросец, каие есть наиболее популярные и качественные JS библиотечки?
например jquery
сама по себе суперская
да еще и куча плагинов

pilot

А еще вопросец, каие есть наиболее популярные и качественные JS библиотечки?
Prototype+Scripta... , Dojo, MochiKit, Prototype, jQuery, MooTools, Ext

sbs-66

самая популярная и простая (типа для дезигнеров) - jQuery (я пользуюсь)
минусы - несколько тормознутая и под оперой изредка подглючивает.
Плагинами к ней пользоваться не советую - там глюк на глюке и глюком погоняет.
плюсы - очень лаконичный код. Я бы даже сказал выводит программирование на качественно новый, доступный домохозяйке уровень.
Ранее популярная, довольно распространённая, но немного более сложная ruby-style - prototype
Это первая из библиотек, получивших всеобщее признание. Последнее время стала довольно монструозной. Позволяет сделать немного больше, чем jQuery, но это почти никогда не нужно, а пользоваться ей менее удобно.
Есть ещё известная библиотека от Yahoo (mootools вроде) и ещё какой-то проект, название которого забыл (тут в предыдущем посте напомнили - Dojo. Они ещё более перегружены и ими тоже пользоваться не стоит.
Ну и наконец, самая маленькая, аскетичная, безглючная и строгая библиотека - base 2 от Dead Edward (или как там дядьку зовут). В плане удобства использования она ничего не даёт сверх того, что есть в стандартном JS - просто исправляет некоторые глюки и позволяет работать единообразно со всеми современными браузерами, плюс добавляет приятные вещи вроде CSS селекторов (которые есть в Prototype и jQuery) При её использовании код выглядит как класический код на JS.

pilot

Yahoo (mootools вроде)
YUI

sbs-66

Да, это я наврал. А mootools от кого? Тоже вроде какой-то известный web-проект...

pilot

Ее 1 чел пишет. На сайте он написан.

pilot

Мне Mootools нравится. Ее можно скачать кусочками и прямо сразу minified.
Ну и вообще, идеи, документация — все ок.

pilot

Лучше я погну: одной строчкой в MooTools.

function add{
($('qnt').value.toInt.times(function(i){
$('div_for_objects').adoptnew Element('input',{'type':'text','name':'field'+i} (new Element('br'})};

Что-то типа того.

kruzer25

В javascript-е любое колричество строчек можно схлопнуть в одну.
И непонятно, чем
$('qnt').value.toInt.times(function(i){

лучше
for(i=0;i<qnt;i++) {

pilot

Императивщик, Контры на тебя нет

dedwowan

Ничем не лучше. Но представленный вариант позволяет не только добавлять строчки, но еще и удалять их -)

kruzer25

А по-русски можно?

slonishka

типа форы не кошерны с точки зрения функциональной парадигмы

Ivan2009

quote]минусы - несколько тормознутая [ [/quote]
jquery недано обновили. ускорение в десятки раз
мне нравится простота и малый код этой библиотеки (20 Kb)
даже гугл переходит на jquery

sbs-66

До этого обновления она была СИЛЬНО тормознутая. Сейчас она стала работать за разумное время, но медленнее, чем, скажем, base 2.
Оставить комментарий
Имя или ник:
Комментарий: