Форум dkLab и Denwer
Здесь общаются Web-разработчики.
Генеральный спонсор:
Хостинг «Джино»

Блокировка выбранных форм (Terre)
Author Message
Terre
Участник форума



Joined: 28 Jan 2005
Posts: 23
Карма: -1
   поощрить/наказать


PostPosted: Mon Jan 31, 2005 2:06 pm (написано за 35 секунд)
   Post subject: Блокировка выбранных форм
Reply with quote

Code (php): скопировать код в буфер обмена
<script>
function changeField(i) {
document.getElementById('select').disabled=i;
document.getElementById('radio_USD').disabled=!i;
document.getElementById('radio_EUR').disabled=!i;
document.getElementById('radio_EUR_USD').disabled=!i;
document.getElementById('radio_all'"radio" name="radiobutton" value="radiobutton" onchange="changeField(!this.checked)""radio" name="radiobutton" value="radiobutton" onchange="changeField(this.checked)" checked>

<br><br>



<input type="radio" value="USD" name="curs" id="radio_USD">
<input type="radio" value="EUR" name="curs" id="radio_EUR">
<input type="radio" value="EUR/USD" name="curs" id="radio_EUR_USD">
<input type="radio" value="0" name="curs" id="radio_all">


<br>

<select name="curs" id="select"><option value="0"
но тут получяется что отключение не сразу срабатывает, тоесть активные все форы, срабатывает только когда мышкой щёлкнешь по пустому месту ну или переключешь радио-кнопки "вкл/выкл"
Back to top
View user's profile Send private message Send e-mail
Владимир Хоменко
Участник форума



Joined: 11 Jun 2004
Posts: 427
Карма: 42
   поощрить/наказать

Location: Николаев, Украина

PostPosted: Mon Jan 31, 2005 2:17 pm (спустя 10 минут; написано за 9 секунд)
   Post subject:
Reply with quote

Если я правильно понял ...

Добавьте в конец файла
Code (JavaScript): скопировать код в буфер обмена
<script>changeField(true)</script>
надо же вызвать эту функцию, чтобы задизейблить елементы.
Back to top
View user's profile Send private message Send e-mail
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Mon Jan 31, 2005 3:29 pm (спустя 1 час 11 минут; написано за 1 минуту 23 секунды)
   Post subject:
Reply with quote

Владимир Хоменко wrote:
Добавьте в конец файла
тогда уж лучше:
Code (html): скопировать код в буфер обмена
<body (december.com/html/4/element/body.html) onload='changeField(true)'> (december.com/html/4/element/.html)
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Mon Jan 31, 2005 3:37 pm (спустя 8 минут; написано за 1 минуту 59 секунд)
   Post subject:
Reply with quote

Rumata
Этот вариант плох тем, что форма будет отключена только после загрузки всего, что есть на странице.
У меня есть проект, где от показа страницы до события onload проходит до 3 секунд. =\

Terre
Лучше отключать формы на стороне сервера, а с помощью JS уже включать.
Back to top
View user's profile Send private message
Terre
Участник форума



Joined: 28 Jan 2005
Posts: 23
Карма: -1
   поощрить/наказать


PostPosted: Tue Feb 01, 2005 5:38 am (спустя 14 часов 3 секунды; написано за 3 минуты 49 секунд)
   Post subject:
Reply with quote

Quote:
<body onload='changeField(true)'>
я вставил, вроде работает, правдо вот работает со второго раза, помню на какомто сайте была подобная форма, но сколько искал так и несмог найти.

а другие варианты есть?
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Tue Feb 01, 2005 10:56 pm (спустя 17 часов 18 минут; написано за 55 секунд)
   Post subject:
Reply with quote

onload срабатывает только после того, как загрузятся все картинки (к примеру).
Единственный выход, насколько я знаю, - просто помещать код скрипта в конец страницы (непосредственно перед </body>). Тогда он срабатывает сразу же после загрузки, еще до картинок.
Back to top
View user's profile Send private message Send e-mail
Юрий Насретдинов
Модератор



Joined: 13 Mar 2003
Posts: 8642
Карма: 198
   поощрить/наказать

Location: 007 495

PostPosted: Wed Feb 02, 2005 3:38 pm (спустя 16 часов 41 минуту; написано за 1 минуту)
   Post subject:
Reply with quote

Дмитрий Котеров
А я сразу после того элемента, который нужно изменить, втыкаю... Скрипты, что интересно, выполняются даже по мере загрузки страницы, то есть даже еще до конца загрузки HTML. Этим довольно часто пользуются в чатах, основанных на «потоке HTML»
Back to top
View user's profile Send private message Send e-mail
Terre
Участник форума



Joined: 28 Jan 2005
Posts: 23
Карма: -1
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 12:57 am (спустя 9 часов 19 минут)
   Post subject:
Reply with quote

я вот что заметил, при вставке
 <body onload='changeField(true)'>

в браузере, я на IE6 WinXP в строке состояния появляется текст "Ошибка на странице"
со значком жёлтого цвета

как можно избавиться от этого?
Back to top
View user's profile Send private message Send e-mail
Дмитрий Котеров
Администратор



Joined: 10 Mar 2003
Posts: 13665
Карма: 413
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 4:03 am (спустя 3 часа 5 минут; написано за 1 минуту 27 секунд)
   Post subject:
Reply with quote

Terre
Как-как... исправить ошибку, как же еще.
yUAC wrote:
А я сразу после того элемента, который нужно изменить, втыкаю...
Можно и так делать. Да только не всегда такой вариант подходит (потому что, например, не всегда известно, какие именно элементы будут меняться). Вон, например, тут в форуме после загрузки JS-код проходится по всем ссылкам (getElementsByTagName("A")) и добавляет к ним код "Live preview".
Back to top
View user's profile Send private message Send e-mail
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 8:27 am (спустя 4 часа 23 минуты; написано за 15 секунд)
   Post subject:
Reply with quote

Terre wrote:
Ошибка на странице
это значит, что ошибка на странице, которую надо исправить
Back to top
View user's profile Send private message
Terre
Участник форума



Joined: 28 Jan 2005
Posts: 23
Карма: -1
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 5:43 pm (спустя 9 часов 16 минут; написано за 3 минуты 12 секунд)
   Post subject:
Reply with quote

вот еслибы я понимал этот язык, то может и смог бы сделать, но я пока знаю только один, это PHP и то слабовато

но ведь полюбому конить, но делал подобную форму, я даже видел на сайте. который сколько искал так и ненашол, пришлось тут вопрос сделать
Back to top
View user's profile Send private message Send e-mail
Rumata
Профессионал



Joined: 17 Aug 2003
Posts: 1850
Карма: 185
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 6:40 pm (спустя 56 минут; написано за 6 секунд)
   Post subject:
Reply with quote

Terre wrote:
вот еслибы я понимал этот язык, то может и смог бы сделать, но я пока знаю только один, это PHP и то слабовато
а что говорит на это классик?
Quote:
учиться, учиться, учиться
Back to top
View user's profile Send private message
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Thu Feb 03, 2005 10:15 pm (спустя 3 часа 34 минуты; написано за 6 минут)
   Post subject:
Reply with quote

Самое забавное, что тут нужен RTFM по HTML, а не JS.
Ибо есть аттрибут 'disabled'...

Вообще, забавная тема 8*)

<..edit..>

Посмотрел я внимательно первое сообщение:
Требуется по смене значения радиокнопки менять "включенность" полей.
А совсем не по факту загрузки.

Terre
1. onchange у радиокнопки наступает после того, как с неё уйдёт фокус. Т.о. onchange замените на onclick и всё будет пучком.
2. передавайте не changeField(this.checked), а changeField(true) и changeField(false).
Back to top
View user's profile Send private message
Terre
Участник форума



Joined: 28 Jan 2005
Posts: 23
Карма: -1
   поощрить/наказать


PostPosted: Thu Feb 03, 2005 11:13 pm (спустя 57 минут; написано за 3 минуты 18 секунд)
   Post subject:
Reply with quote

WingedFox, я сделал как ты сказал, переключение происходит сразу, но проблема с выводом ошибки осталась, да кстати, при возращении браузеном назад кнопкой от самого браузера, то почемуто активными становятся все формы

Вот сам кодик, что тутне так?
Code (Visual Basic): скопировать код в буфер обмена
<script>
function changeField(i) {
document.getElementById('select').disabled=i;
document.getElementById('radio_USD').disabled=!i;
document.getElementById('radio_EUR').disabled=!i;
document.getElementById('radio_EUR_USD').disabled=!i;
document.getElementById('radio_all').disabled=!i;
}
changeField(true)
</script>



<form method="post" action="index.php">


<input type="radio" name="radiobutton" value="radiobutton" onclick="changeField(false)" checked></td>
<br>
USD: <input type="radio" value="USD" name="curs" id="radio_USD"></td>
EUR: <td width="20"><input type="radio" value="EUR" name="curs" id="radio_EUR"></td>
EUR/USD: <input type="radio" value="EUR/USD" name="curs" id="radio_EUR_USD""radio" value="0" name="curs" id="radio_all">

<br>
<input type="radio" name="radiobutton" value="radiobutton" onclick="changeField(true)""curs" id="select"><option value="0"
Back to top
View user's profile Send private message Send e-mail
WingedFox
Профессионал



Joined: 29 Apr 2003
Posts: 4064
Карма: 268
   поощрить/наказать

Location: Питер

PostPosted: Fri Feb 04, 2005 1:59 am (спустя 2 часа 46 минут; написано за 1 минуту 46 секунд)
   Post subject:
Reply with quote

Terre wrote:
что тутне так?
Terre wrote:
changeField(true)
</script>
Это.
Нельзя вызывать getElementById() до того, как браузер создаст этот элемент.
Вообще, дабы было наиболее безопасно, вызывать его надо только после окончания загрузки страницы.
А отключать формы/поля средствами HTML.
Back to top
View user's profile Send private message
Display posts from previous:   
Post new topic   Reply to topic All times are GMT + 3 Hours
Page 1 of 1    Email to a Friend.
You cannot post new topics in this forum. You cannot reply to topics in this forum. You cannot edit your posts in this forum. You cannot delete your posts in this forum. You cannot vote in polls in this forum. You cannot attach files in this forum. You can download files in this forum.
XML