Javascript-форум (https://javascript.ru/forum/)
-   Events/DOM/Window (https://javascript.ru/forum/events/)
-   -   Help как правильно обращаться к элементам (https://javascript.ru/forum/events/10523-help-kak-pravilno-obrashhatsya-k-ehlementam.html)

MrRiving 08.07.2010 08:57

Help как правильно обращаться к элементам
 
Люди помогите пожалуйста. Как обращаться правильно к элементам формы, так чтоб скрипт работал в Opera, Mozilla Firefox, IE одинакково хорошо!!! Предупреждаю, что я новичек. Прошу строго не судить.
есть скрипт в файле input.js:
function change_color_input (name_input_text, color) {
name_input_text.style.color = color;
name_input_text.value='';}
и в файле input2.js:
function change_checkbox11(name_checkbox,name_button)
{ if (name_checkbox.checked == true)
{name_button.disabled = false;
}else
{name_button.disabled = true;}}

и форма:
<form action="save.php" method="post" name="reg_form">
<input type="text" name="email" id="email" value="name@mail.ru" size="40" maxlength="50" class="form-text" onFocus="javascript:change_color_input(email, 'black');"/>

<input name="podtverzdenie" type="checkbox" value="1" onClick="javascript:change_checkbox11(this.form.po dtverzdenie,this.form.submit);">

<input name="submit" type="button" disabled value="Регистрация">
</form>
Все работает во всех указанных браузерах.

изменяю:
onFocus="javascript:change_color_input(email, 'black');" на
onFocus="javascript:change_color_input(this.form.e mail, 'black');"
Тоже везде работает

изменяю:
onFocus="javascript:change_color_input(email, 'black');" на
onFocus="javascript:change_color_input(document.fo rms["reg_form"].email, 'black');"
Перестает работать абсолютно везде

изменяю:
onFocus="javascript:change_color_input(email, 'black');" на
onFocus="javascript:change_color_input(document.fo rms.reg_form.email, 'black');"
И снова начинает работать

Ну и наконец изменяю:
onFocus="javascript:change_color_input(email, 'black');" на
onFocus="javascript:change_color_input(document.ge tElementById('email'), 'black');"
Тоже работает

Какой вариант самый оптимальный???Какой лучше использовать?

Готов принять любыые замечания по коду. :)

И еще когда необходимо будет указывать id у input, а когда нет?

MrRiving 08.07.2010 09:00

и уже точно последнее как праильнее:
onFocus="javascript:change_color_input(email, 'black');"
или
onFocus="change_color_input(email, 'black');"

Octane 08.07.2010 10:09

"javascript:" - псевдопротокол, такой же, как "mailto:" или "about:", следовательно писать его нужно в URL, которые указываются в таких атрибутах тегов, как "href" и "src", в остальных атрибутах тегов псевдопротоколы не нужны.


Часовой пояс GMT +3, время: 20:08.