|
Страница 1 из 1 [ Сообщений: 22 ] |
Автор |
Сообщение |
HAGer
соучастник
|
|
Есть код
Код: <form name="form1" action="makechanges.php" method="get"> <table><tr><td>Attack</td><td><input size="1" MAXLENGTH="2" name="Par01" value="30"> </td></tr> <tr><td>Defence</td><td><input size="1" MAXLENGTH="2" name="Par02" value="82"> </td></tr> <tr><td>Balance</td><td><input size="1" MAXLENGTH="2" name="Par03" value="85"> </td></tr> …. …. <tr><td>Stamina</td><td><input size="1" MAXLENGTH="2" name="Par04" value="80"> </td> </tr> </form>
как сделать, чтобы при нажатии на ссылку все елементы этой формы стали disabled?
сейчас пишу так:
document.getElementsByTagName('input').disabled = true;
Не работает.
_________________ Copyright © 2000–2011 by HAGer ™
|
|
|
|
|
gro
новый человек
|
|
Цитата: | document.getElementsByTagName('input').disabled = true;
Не работает |
Еще бы работало. getElements... возвращает коллекцию элементов. Вот по ней и нужно пройтись.
Код: var inps = document.getElementsByTagName( "input" ); for ( var i = 0; i < inps.length; i++ ) inps.item( i ).disabled = true;
|
|
|
|
|
HAGer
соучастник
|
|
Век живи, век учись!
Пасиб!
_________________ Copyright © 2000–2011 by HAGer ™
|
|
|
|
|
gro
новый человек
|
|
Готовые библиотеки, сами по себе вещь, конечно, хорошая.
Но, как побочный эффект они производят на свет людей, которым, действительно, легче подключить 50-килобайтовый файл и скопировать где-то найденный код, чем написать 3 строчки.
|
|
|
|
|
vashurin
новый человек
|
|
Crazy писал(а): | ...что определенно не хуже, чем изобретать по 50k велосипедов на каждый сайт... |
оффтопик: Crazy, хуже, гораздо хуже.…, думать иногда полезно собственной головой, а не чужой библиотекой... Например, нафига в данной ситуации, подключать функции Ajax'а? А ведь они будут подключены при использовании prototype.js
_________________ С уважение, Вашурин Владимир.
|
|
|
|
|
MpaK999
участник
|
|
vashurin, вы не используете АЯКС, тогда мы идем к вам
Нет, ну проще же сделать один раз
Цитата: | $('formid').disable(); |
и не изобретать велосипед
_________________ :: metal kick ass ::
|
|
|
|
|
vashurin
новый человек
|
|
MpaK999 писал(а): | vashurin, вы не используете АЯКС, тогда мы идем к вам |
использую, но это не значит, что надо сувать где попало, тем более там где он не нужен (в данном случая код составил 3 строки, а был бы файл в 50 килобайт кода). Хотя, может это я ни чего не понимаю в программировании и вебе?
оффтопик: кстати, про prototype.js , великое совершение, написать библиотеку, которая имитирует псевдо Jav'овый синтаксис при составлении псевдо классов (которые на поверку всего лишь хеши).
_________________ С уважение, Вашурин Владимир.
|
|
|
|
|
MpaK999
участник
|
|
vashurin, зачем куда попало, как раз в этой задаче решает проблему на все сто, блочит всю форму, конечно можно написать свой обработчик формы, пройтись по всем элементам и дизаблить их, но это тот же велосипед - хочу посмотреть этот ваш код в 3 строки.
Если уж нужен простой вариант, то вешать на onSubmit функцию которая отключит в форме лишь кнопку submit
_________________ :: metal kick ass ::
|
|
|
|
|
prometheus
соучастник
|
|
1) Не нужна здесь никакая библиотека.
2) Зачем дизайблить все инпуты на странице (document.getElementsByTagName( "input" );)
Это не правильно.
В данной ситуации нужно обращаться к экземплярам формы (form)
var el = document.form_name.elements;
var fl = el.length;
for (var i=0;i<fl;i++) {
…
}
И уже внутри цикла, смотреть является ли отдельный (el[i]) элемент input и если он не дизайблен, то делать это с ним.
_________________ Прометей.
|
|
|
|
|
Crazy
Модератор
|
|
vashurin писал(а): | использую, но это не значит, что надо сувать где попало, тем более там где он не нужен (в данном случая код составил 3 строки, а был бы файл в 50 килобайт кода). |
Очень хороший пример невтемного совета. Невтемного потому, что давший его человек не знает, что еще делается на странице и в действительности не может быть уверен в оптимальности своего совета.
|
|
|
|
|
Crazy
Модератор
|
|
MpaK999 писал(а): | Если уж нужен простой вариант, то вешать на onSubmit функцию которая отключит в форме лишь кнопку submit |
А еще лучше -- скрывающий всю форму. Ибо если форма полностью заблокирована, то ей незачем занимать место на странице.
|
|
|
|
|
Crazy
Модератор
|
|
vashurin писал(а): | оффтопик: кстати, про prototype.js , великое совершение, написать библиотеку, которая имитирует псевдо Jav'овый синтаксис при составлении псевдо классов (которые на поверку всего лишь хеши). |
оффтопик: Здесь проблема не в дизайне prototype.js, а в том, что вы не понимаете, что и зачем там сделано. Но это не проблема авторов protoype.js и уж тем более не моя. Просто FYI.
|
|
|
|
|
MpaK999
участник
|
|
prometheus, у вас уже не три строки
vashurin писал(а): | в данном случая код составил 3 строки |
Crazy писал(а): | А еще лучше -- скрывающий всю форму. |
да, это тоже хорошо, люблю например это делать эффектами того же прототипа ))
_________________ :: metal kick ass ::
|
|
|
|
|
Crazy
Модератор
|
|
MpaK999 писал(а): | люблю например это делать эффектами того же прототипа )) |
Кстати, хороший пример того, что однажды подцепив к странице prototype обнаруживаешь, что есть еще немало мелочей, в которых он может ее улучшить. Любая из них вручную пишется в 10-30 строк, но они почему-то всегда остаются ненаписанными.
Простейший пример -- позиционирование курсора на первое поле формы. Оно делается в одну строку что с prototype, что без него. Но во втором варианте встречается чаще.
|
|
|
|
|
prometheus
соучастник
|
|
MpaK999 писал(а): | prometheus, у вас уже не три строки А я и не обещал три строки, там аж строчек так, десять предполагается |
MpaK999 писал(а): | люблю например это делать эффектами того же прототипа )) |
Хороше же вам, а меня заставляют самого все писать
_________________ Прометей.
|
|
|
|
|
prometheus
соучастник
|
|
Crazy писал(а): | MpaK999 писал(а): | люблю например это делать эффектами того же прототипа )) |
Кстати, хороший пример того, что однажды подцепив к странице prototype обнаруживаешь, что есть еще немало мелочей, в которых он может ее улучшить. Любая из них вручную пишется в 10-30 строк, но они почему-то всегда остаются ненаписанными. Простейший пример -- позиционирование курсора на первое поле формы. Оно делается в одну строку что с prototype, что без него. Но во втором варианте встречается чаще. |
Кстати, говоря prototype совсем не панацея.
Там расширяются свойства и методы, тот же Array - из за чего ее не всегда можно использовать.
Другие скрипты работать не будут.
_________________ Прометей.
|
|
|
|
|
Crazy
Модератор
|
|
prometheus писал(а): | Там расширяются свойства и методы, тот же Array - из за чего ее не всегда можно использовать. Другие скрипты работать не будут. |
Это есть. Но есть и нюанс: перестают работать те и только те скрипты, которые неправильно использовали Array.
|
|
|
|
|
prometheus
соучастник
|
|
Crazy писал(а): | prometheus писал(а): | Там расширяются свойства и методы, тот же Array - из за чего ее не всегда можно использовать. Другие скрипты работать не будут. |
Это есть. Но есть и нюанс: перестают работать те и только те скрипты, которые неправильно использовали Array. |
Хм, и что тут может быть неправильно?
var basket = getCookie('basket');
var goods_arr = basket.split("|");
var goods = new Array;
for (i in goods_arr) {
if (goods_arr[i] == "") continue;
var arr = goods_arr[i].split(':');
…
}
_________________ Прометей.
|
|
|
|
|
prometheus
соучастник
|
|
Crazy писал(а): | prometheus, признайтесь: вы не читали ни стандарта ECMAscript, ни хотя бы документации на prototype.js |
Признаюси - по ECMAscript так подробно (аж до 65 стр) не читал
А уж доку по prototype - тем более Без него пока обхожуся. У меня своя рукописная библиотечка для всяких трюкенций...
P.S. А программеру, что написал "i in goods_arr" - выговор
_________________ Прометей.
|
|
|
|
|
|
Страница 1 из 1 [ Сообщений: 22 ] |
Уровень доступа: Вы не можете начинать темы. Вы не можете отвечать на сообщения. Вы не можете редактировать свои сообщения. Вы не можете удалять свои сообщения. Вы не можете добавлять вложения.
|
|