Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   автоввод даты в поле при изменении другого поля (https://javascript.ru/forum/misc/36680-avtovvod-daty-v-pole-pri-izmenenii-drugogo-polya.html)

js_nub 24.03.2013 15:33

автоввод даты в поле при изменении другого поля
 
здрасьте, люди.
я полнейший нуб в джаваскрипте и даже прочтение учебника мне не помогло понять, откуда мне ковырять проблему ((((
ткните пальцем, если не трудно.

есть страница, на которой всего два поля:
1) выпадающий список
2) поле в котором надо отображать дату (пустое)
Задача:
при изменении значения выпадающего списка №1, вставлять текущую дату в поле№2.

я написал такой код:

//функция получающая второе поле и вставляющая туда дату

function updateDate(){
	var date = document.getElementsByName('dateField');
	date[0].value = new Date();
}

//код, получающий первое поле и на его изменении вызывающий функцию

var status = document.getElementById('Status');
status.onchange = updateDate;


оно не работает, а я даже не понимаю, с какой стороны траблшутить (((

сразу замечу, что и айдишник и "имя" все правильные. Код скрипта правильно вписан в страницу. Весь код страницы выложить не могу, т.к. это секретные марсианские разработки. :help:

хоть задайте наводящие вопросы, чтоб я понимал, как научиться фиксить неработающий JS (((
с плюсами и жабой всё проще - или компилятор ругается или эксэпшены сыпятся, а тут я тупо не знаю, что именно не так.

спасибо

danik.js 24.03.2013 16:07

Цитата:

Сообщение от js_nub
эксэпшены сыпятся

В JavaScript они естестественно тоже сыпятся. Открой консоль браузера (F12 или Ctrl+Shift+K смотря че за браузер)
И отладчик встроен практически в каждый браузер.

Но в данном случае исключений не будет. Проблема в глобальных переменных. Сколько раз вам говорят: не объявляйте глобальные переменные без необходимости.
В этом коде вы пытаетесь переопределить window.status - отсюда и проблемы.

<!DOCTYPE html>
<select id="Status">
    <option value="1">Опшн 1</option>
    <option value="2">Опшн 2</option>
</select>
<input type="text" name="dateField" />
<script>
// оборачиваем в анонимную функцию - новую область видимости
(function(){

//функция получающая второе поле и вставляющая туда дату
 
function updateDate(){
    var date = document.getElementsByName('dateField');
    date[0].value = new Date();
}
 
//код, получающий первое поле и на его изменении вызывающий функцию
 
var status = document.getElementById('Status');
status.onchange = updateDate;

})();
</script>

js_nub 25.03.2013 01:49

сенсей, это магия! буду изучать, спасибо ))


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