не меняется disabled в input

252
31 августа 2017, 21:44

Есть небольшая форма, которая спрашивает, работаешь ли ты. Если это так, то тогда становятся доступны остальные поля для заполнения:

<form class="last">
            <div class="form_line">
                <p class="text">Вы трудоустроены?</p>
                <div class="check">
                    <input id="job" type="checkbox" name="job" value="job" checked="false" onclick="job()">
                    <label for="job"></label>
                </div>
            </div>
            <div class="form_line">
                <p class="text">Город, адрес работы</p>
                <input id="job_1" type="text" disabled="true">
            </div>
            <div class="form_line">
                <p class="text">Название организации</p>
                <input id="job_2" type="text" disabled="true">
            </div>
            <div class="form_line">
                <p class="text">Трудовой стаж на последнем <br> месте работы (в месяцах)</p>
                <input id="job_3" type="text" disabled="true">
            </div>
            <div class="form_line">
                <p class="text">Полный ежемесячный доход (в рублях)</p>
                <input id="job_4" type="text" disabled="true">
            </div>
            <div class="form_line">
                <p class="text">Должность</p>
                <input id="job_5" type="text" disabled="true">
            </div>
            <div class="form_line">
                <p class="text">Рабочий телефон</p>
                <input id="job_6" type="text" disabled="true">
            </div>
            <input type="button" name="next" class=" red" value="ОТПРАВИТЬ">
        </form>

вот тут код на JS

function job() {
var job = document.getElementById('job');
var job_arr = [];
job_arr.push(document.getElementById('job_1'));
job_arr.push(document.getElementById('job_2'));
job_arr.push(document.getElementById('job_3'));
job_arr.push(document.getElementById('job_4'));
job_arr.push(document.getElementById('job_5'));
job_arr.push(document.getElementById('job_6'));
    if(job.checked) {
        for (var i = 0; i < job_arr.length; i++) {
            job_arr[i].disabled = false;
        }
    } else {
        for (var i = 0; i < job_arr.length; i++) {
            job_arr[i].disabled = true;
        }
    }

}

При этом, когда клацаешь по чекбоксу, ничего не меняется. Почему?

Answer 1

Конфликт имен:

onclick="jobClick()"
function jobClick() {

В таких случаях полезно посмотреть ошибки в консоли браузера.

job is not a function

Элемент с name="job" перекрывал определение функции job.

Не ограничивайте Ваш креатив в деле придумывания названий для элементов, функций и переменных.

READ ALSO
Синхронность в Node.JS

Синхронность в Node.JS

Написал код для оповещений о новых видео на канале YouTubeЯ получаю ID нового видео и сверяю его с последним ID в базе данных

291
Привести строки массива к числу JS

Привести строки массива к числу JS

Есть массив var myMass = ["20", null, undefined, "5", {}, 700];Нужно привести все значения к числу

216
Lexical Environment и Record Environment

Lexical Environment и Record Environment

Хотелось бы увидеть четкое определение Lexical Environment и Record Environment (с пояснениями) и псевдокод, который бы пояснил происходящее

224